一种使用ARM处理器串口进行实时通讯的方法技术

技术编号:26845413 阅读:37 留言:0更新日期:2020-12-25 13:07
本发明专利技术公开一种使用ARM处理器串口进行实时通讯的方法,采用DMA和串口空闲中断相结合的方法实现串口数据的发送和接收,DMA保证将数据的接收和发送转入后台操作,不占用主处理器的时间;在与接收DMA缓存交换数据时需将CACHE使能关闭,保证数据交换的可靠性;发送和接收数据的DAM通道完全独立,互不影响,保证串口的全双工通讯和数据的实时性;利用空闲中断方式,可以实现整包数据接收,在串口通讯线上完成一包数据发送后再进入中断程序进行数据接收,减少进入接收中断的次数,提高程序运行效率;此方法节省发送和接收数据占用主处理器的时间,可以缩短导航周期,提高微惯导系统的精度。

【技术实现步骤摘要】
一种使用ARM处理器串口进行实时通讯的方法
本专利技术涉及使用串口进行实时通讯方法,具体涉及一种小型化微机电惯性导航系统用ARM处理器串口实时通讯的实现方法。
技术介绍
微小型惯性导航系统由于功耗和体积的需求,采用低功耗小体积的ARM处理器作为系统的核心器件,完成与惯性器件MEMS陀螺仪、MEMS加速度计、磁强计和高度计等数据采集后,经过误差补偿和积分,获得被测载体的加速度、角速率、姿态、位置及速度等运动信息后,需要将惯性信息实时周期性发送给外部设备,数据更新周期为1ms,并实时接收外部设备发送的数据,完成惯性导航系统的初始信息装订和周期性装订数据。为满足微小型惯性导航系统的小体积需求,仅采用体积小功耗低的ARM处理器,该处理器封装较小,内部接口种类丰富,但各个接口的资源有限,串口的缓存较小,接收和发送数据均占用处理器的时间。在惯性导航系统中ARM处理器的主要任务是进行标定参数误差补偿、动态误差补偿及导航滤波解算等,要实现1ms的导航周期并满足软件运行20%的时间余量,需要保证处理器的解算时间,不能占用太多时间进行串口数据的实时接收和发送,受微小型系统体积限制无法增加FPGA等可编程器件辅助实现智能通讯。
技术实现思路
本专利技术提供了一种使用ARM处理器串口进行实时通讯的方法,实现可靠实时通讯。为解决以上技术问题,本专利技术一种使用ARM处理器串口进行实时通讯的方法,包括:串口数据的接收,采用ARM处理器的串口空闲中断方式,硬件在检测到串行通讯线上连续发送的数据包中有一段空闲时间后触发空闲中断,数据存储在接收DMA缓存中;串口数据的发送,采用主动周期性发送方式,软件将要发送的串口数据及数据长度放入相应的存储器中,并启动串口DMA发送,DMA会自动连续进行发送,完成发送后置位相应的标志或者触发发送中断。进一步地,在数据的接收、发送之前,首先进行初始化,步骤如下:串口物理层链路的初始化,设置波特率、模式、字长和采样率;使能串口CR3中DMA发送和DMA接收位;使能CR1寄存器中的空闲中断位,设置串口中断入口和中断优先级分组;串口接收DMA初始化,首先进行DMA通道设置,设置串口DMA接收通道,将串口的外设地址赋值给DMA流,指定DMA存储器的起始地址,设置DMA要接收的数据流长度,将DMA的CR寄存器清零,DMA操作方式设置为外设流控制,外设串口设置为非增量模式,存储器设置为增量模式,根据串口协议设置数据位长度,传输方式设置为单次突发传输,选择要设置的通道号;串口发送DMA初始化,首先进行DMA通道设置,设置串口DMA发送通道,将串口的外设地址赋值给DMA流,指定DMA存储器的起始地址,设置DMA要发送的数据长度;将DMA的CR寄存器清零,DMA操作方式设置为存储器控制,外设串口设置为非增量模式,存储器设置为增量模式,根据串口协议设置数据位长度,传输方式应设置为单次突发传输;根据需要设置的串口发送对应的通道号。进一步地,所述串口数据的接收步骤具体包括:空闲中断为通讯线出现大于一个字节长度的空闲传输时,触发中断,硬件检测到串口中断进入到中断服务流程中后,首先读取串口中断状态寄存器,判断是否为空闲中断位触发的中断,如果为否则清除中断状态寄存器后退出中断服务流程;如果为是则关闭DMA接收,关闭串口DMA接收,读取DMA数据长度寄存器,清除DMA接收标志,按照读取到的数据长度将数据从DMA缓存中取出;在读取之前,关闭CACHE,按照接收数据长度读取完成后,再使能CACHE。进一步地,解析收到的串口通讯数据在接收中断流程或主流程中进行数据解析。进一步地,串口数据的发送步骤具体包括:根据发送数据长度和波特率确定发送周期,在每个定时发送周期到后,首先判断上一个发送周期数据是否完成发送,如未完成,需报发送超时错误;若完成发送则关闭DMA发送,关闭串口DMA发送,清除DMA发送标志,按照发送的数据长度将数据写入DMA缓存中,完成后再次启动DMA发送。本专利技术采用串口接收空闲中断和DMA发送接收的通讯方式,该方法能够保证串口数据通讯的实时性和可靠性,能够减少数据通讯占用处理器的时间,使处理器专注于导航解算,缩短惯性导航解算周期,提高惯性导航系统精度,可应用于微机电惯性导航系统中。附图说明附图1串口空闲中断和DMA发送接收数据初始化流程图;附图2串口接收流程图;附图3串口发送流程图;具体实施方式下面结合附图对本专利技术作进一步详细说明。如附图1所示的本专利技术提供的串口和DMA发送接收数据初始化流程框图中,串口初始化步骤如下:首先进行串口物理层链路的初始化设置,波特率、模式、字长和采样率等;使能串口CR3中DMA发送和DMA接收位;使能CR1寄存器中的空闲中断位,设置好串口中断入口和中断优先级分组,由此便完成了串口的初始化。为防止误触发中断,对串口的使能应该在整个初始化流程最后步骤进行。代码如下,其中temp为要设置的波特率,USART1_IRQn中断向量。如附图1所示的本专利技术提供的串口和DMA发送接收数据初始化流程框图中,串口接收DMA初始化步骤如下:首先进行DMA通道设置,设置串口DMA接收通道,将串口的外设地址赋值给DMA流,即DMA与外设建立链接;指定DMA存储器的起始地址,即DMA自动接收数据缓存的地址;DMA要接收的数据流长度可设置,但在空闲中断方式下,数据长度系统强制为0xFFFF,接收到数据后以字节为单位自动减1;将DMA的CR寄存器清零,保证DMA处于可设置状态;DMA操作方式应设置为外设流控制,这样在串口有数据要接收时便自动触发DMA接收到内部缓存中,外设串口设置为非增量模式,存储器设置为增量模式,收到数据后存储器地址指针自动加1;数据位长度根据串口协议设置为8位(字节模式),传输方式应设置为单次突发传输,即被动实时接收方式;由于ARM处理器具有多个串口,每个串口的接收和发送对应不同的通道,选择要设置的通道号。由此便完成了串口接收通道的DMA初始化。代码如下,其中par、mar、ndtr、chx为外设地址、存储器地址、数据长度和通道号。如附图1所示的本专利技术提供的串口和DMA发送接收数据初始化流程框图中,串口发送DMA初始化步骤如下:首先进行DMA通道设置,设置串口DMA发送通道,将串口的外设地址赋值给DMA流,即DMA与外设建立链接;指定DMA存储器的起始地址,即DMA自动发送数据缓存的地址;根据需要设置DMA要发送的数据长度;将DMA的CR寄存器清零,保证DMA处于可设置状态;在串口发送流程中,DMA操作方式应设置为存储器控制,这样在使能了串口发送后,DMA便自动将缓存中的数据发送到对应的外设中;外设串口设置为非增量模式,存储器设置为增量模式,完成一个字节的数据发送后存储器地址指针自动加1;数据位长度根据串口协议设置为8位(字节模式),传输方式应设置为单次突发传输;根据需要设置的串口发送对应的通道号。由此便完本文档来自技高网...

【技术保护点】
1.一种使用ARM处理器串口进行实时通讯的方法,其特征在于,包括:/n串口数据的接收,采用ARM处理器的串口空闲中断方式,硬件在检测到串行通讯线上连续发送的数据包中有一段空闲时间后触发空闲中断,数据存储在接收DMA缓存中;/n串口数据的发送,采用主动周期性发送方式,软件将要发送的串口数据及数据长度放入相应的存储器中,并启动串口DMA发送,DMA会自动连续进行发送,完成发送后置位相应的标志或者触发发送中断。/n

【技术特征摘要】
1.一种使用ARM处理器串口进行实时通讯的方法,其特征在于,包括:
串口数据的接收,采用ARM处理器的串口空闲中断方式,硬件在检测到串行通讯线上连续发送的数据包中有一段空闲时间后触发空闲中断,数据存储在接收DMA缓存中;
串口数据的发送,采用主动周期性发送方式,软件将要发送的串口数据及数据长度放入相应的存储器中,并启动串口DMA发送,DMA会自动连续进行发送,完成发送后置位相应的标志或者触发发送中断。


2.根据权利要求1所述的一种使用ARM处理器串口进行实时通讯的方法,其特征在于,在数据的接收、发送之前,首先进行初始化,步骤如下:
串口物理层链路的初始化,设置波特率、模式、字长和采样率;使能串口CR3中DMA发送和DMA接收位;使能CR1寄存器中的空闲中断位,设置串口中断入口和中断优先级分组;
串口接收DMA初始化,首先进行DMA通道设置,设置串口DMA接收通道,将串口的外设地址赋值给DMA流,指定DMA存储器的起始地址,设置DMA要接收的数据流长度,将DMA的CR寄存器清零,DMA操作方式设置为外设流控制,外设串口设置为非增量模式,存储器设置为增量模式,根据串口协议设置数据位长度,传输方式设置为单次突发传输,选择要设置的通道号;
串口发送DMA初始化,首先进行DMA通道设置,设置串口DMA发送通道,将串口的外设地址赋值给DMA流,指定DMA存储器的起始地址,设置DMA要发送的数据长度;将DMA的CR寄存器清零,DMA操作方...

【专利技术属性】
技术研发人员:侯凤霞陈安升扈光锋徐兴华张凌宇刘垒林梦娜袁书博王康徐超
申请(专利权)人:北京自动化控制设备研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1