System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于任务调度的多串口并行通信系统技术方案_技高网

一种基于任务调度的多串口并行通信系统技术方案

技术编号:40009658 阅读:6 留言:0更新日期:2024-01-16 15:04
本发明专利技术公开了一种基于任务调度的多串口并行通信系统,包括STM32微控制器;所述STM32微控制器用于串口通信,所述STM32微控制器包括逻辑控制单元、USART串口单元以及DMA发送单元;所述逻辑控制单元包括定时器、逻辑判断器、中断控制器和优先级控制器。在本发明专利技术中,通信波特率高的串口通过中断接收,并且通信波特率更高的串口中断子优先级更高,保证数据同时出现时能优先接收耗时短的数据,各串口接收中断为同一级别抢占优先级,保证各自接收不会被打断以防止数据丢失现象,减少对CPU资源的占用和对主程序的影响,达到并行接收的目的,同时串口发送按照设置的优先级顺序进行,保证通信周期的稳定可靠,提高了串口通信的通信速率。

【技术实现步骤摘要】

本专利技术属于通信,尤其涉及一种基于任务调度的多串口并行通信系统


技术介绍

1、串口通信是一个广泛使用的数字通信协议,它用于在两个设备之间通过专门设计的线路(称为串行端口)传输数据。无串口缓冲区的单片机需要逐字节接收或发送串口数据,在接收或发送数据时需要占用cpu时间,因此在多个串口同时接收或发送数据时会存在任务之间的冲突,容易导致最终的系统无法按设定进行通信,会造成例如数据丢失、回复数据滞后、发送数据与接收数据并行等严重后果,尤其是高波特率、短通信周期、长数据帧的严苛环境下,冲突的概率大大提高。

2、公开号为cn208077159u的中国专利,公开了一种基于stm32的多串口并行通信系统,该技术采用usart+dma的工作方式,在不增加硬件成本的基础上,合理利用stm32片内资源,结合相关中断函数,能够完成多串口并行通信。但是,其多个串口共用一个dma发送单元,容易产生dma单元的通道使用冲突,不能保证准确性和通信速率,不能真正实现有效地大批量数据串口并行通信;同时,其并没有设置具体的串口中断抢占优先级和子优先级,不能保证串口通信的稳定性。


技术实现思路

1、为解决上述技术问题,本专利技术提供了一种基于任务调度的多串口并行通信系统,可以解决现有技术多串口并行通信稳定性、通信速率不高、容易产生冲突的问题。

2、本专利技术通过以下技术方案得以实现。

3、本专利技术提供的一种基于任务调度的多串口并行通信系统,包括stm32微控制器;

4、所述stm32微控制器用于串口通信,所述stm32微控制器包括逻辑控制单元、usart串口单元以及dma发送单元;

5、所述逻辑控制单元用于控制串口通信;

6、所述usart串口单元用于串口通信中串口数据的发送和接收;

7、所述dma发送单元用于串口通信中dma通道传输,所述dma通道传输负责usart串口单元其中一路串口数据的发送和接收;

8、所述逻辑控制单元包括定时器、逻辑判断器、中断控制器和优先级控制器。

9、优选地,所述定时器用于定时以及根据实际通信协议控制定时周期;

10、所述逻辑判断器用于根据通信耗时判断串口是否使用dma通道传输;

11、所述中断控制器用于控制串口单元的接收中断、发送中断以及空闲中断,并执行相对应的中断服务程序;

12、所述优先级控制器用于根据通信波特率设置usart串口单元的接收中断、串口空闲中断以及定时发送中断的优先级。

13、优选地,所述逻辑控制单元通过中断控制器,采用多中断任务调度方式,实现串口通信;所述多中断任务调度方式指,根据usart串口单元的接收中断优先级响应中断、响应串口空闲中断和响应定时发送中断;

14、所述接收中断优先级由优先级控制器确定,包括:全部串口接收中断设置为同一级别抢占优先级,低波特率的串口接收中断设置为低子优先级响应,高波特率的串口接收中断设置为高子优先级响应,串口空闲中断设置为低一级别抢占优先级,定时发送中断设置为低二级别抢占优先级。

15、优选地,所述逻辑判断器用于根据通信耗时判断串口是否使用dma通道传输,包括:通信耗时最长的串口通过dma通道传输数据,其他串口通过串口接收中断结合定时发送中断传输数据。

16、优选地,所述中断控制器用于在所述usart串口单元产生接收中断后,执行串口接收中断服务程序,包括:

17、在串口接收中断服务程序中完成单字节数据读取并按顺序存储在对应的接收数组中;

18、若所述串口为dma对应的串口,则串口检测到接收数据后,进入串口接收中断开启dma通道接收数据,并关闭dma串口接收中断服务函数响应,直至串口产生串口空闲中断,stm32微控制器响应串口空闲中断请求进入串口空闲中断服务程序;

19、所述空闲中断服务程序包含关闭dma通道、计算接收字节数、读取数据、打开串口接收中断服务函数响应操作。

20、优选地,所述定时周期由实际通信协议规定的通信周期确定;

21、若多个串口的通信周期不同,则以多个串口的通信周期的最大公约数作为定时周期;

22、若单个定时发送中断中需要同时发送多个串口数据,则优先保证dma发送,剩余串口以通信耗时由短到长的顺序进行串口发送。

23、优选地,所述中断控制器还用于串口通信在触发定时中断后,执行定时中断服务程序;

24、其中,所述定时中断服务程序包含执行数据处理,包括读取dma接收完成标志位、当前周期各串口接收数据、处理接收数据、按通信周期向各串口返回处理后数据。

25、优选地,所述一种基于任务调度的多串口并行通信系统还包括串口终端设备1、串口终端设备2和串口终端设备3;

26、所述stm32微控制器为stm32f103vb微控制器,所述usart串口单元包括usart1、usart2和usart3串口,所述dma发送单元包括dma1发送单元;

27、所述stm32微控制器上的usart1_tx引脚连接串口终端设备1的tx引脚,usart1_tx引脚连接串口终端设备1的rx引脚,usart2_tx引脚连接串口终端设备2的tx引脚,usart2_tx引脚连接串口终端设备2的rx引脚,usart3_rx引脚连接串口终端设备3的tx引脚,usart3_tx引脚连接串口终端设备3的rx引脚。

28、优选地,所述逻辑控制单元通过串口或dma接收到的数据存储在接收数组中,当进入定时中断时按数据发送顺序根据通信协议对各串口的接收数组进行校验处理,并重置串口接收计数变量。

29、优选地,所述根据通信协议对接收数组进行校验处理包括校对字节数、帧头、帧尾校验;

30、若校验结果不满足通信协议要求则代表接收出错,并向对应串口返回通信错误字节;

31、若校验结果满足通信协议要求则代表接收正常,并按要求对数据进行处理,将处理后数据按通信周期要求进行串口数据发送,顺序为dma串口优先、其余串口按通信耗时由短到长顺序进行发送。

32、本专利技术的有益效果在于:

33、1、通信波特率高的串口通过中断接收,并且通信波特率更高的串口中断子优先级更高,保证数据同时出现时能优先接收耗时短的数据,各串口接收中断为同一级别抢占优先级,保证各自接收不会被打断以防止数据丢失现象,减少对cpu资源的占用和对主程序的影响,达到并行接收的目的,同时串口发送按照设置的优先级顺序进行,保证通信周期的稳定可靠,提高了串口通信的通信速率;

34、2、整体系统仅有一个串口使用dma单元进行数据传输,避免了dma单元的通道使用冲突,提高了多串口并行通信的稳定性;

35、3、通信耗时最长的串口通过dma通道接收,不占用cpu运行时间,dma关闭的串口空闲中断抢占优先级低于串口接收中断,高于定时器中断,以保证数据接收的及时性;...

【技术保护点】

1.一种基于任务调度的多串口并行通信系统,其特征在于:包括STM32微控制器;

2.如权利要求1所述的多串口并行通信系统,其特征在于:所述定时器用于定时以及根据实际通信协议控制定时周期;

3.如权利要求2所述的多串口并行通信系统,其特征在于:所述逻辑控制单元通过中断控制器,采用多中断任务调度方式,实现串口通信;所述多中断任务调度方式指,根据USART串口单元的接收中断优先级响应中断、响应串口空闲中断和响应定时发送中断;

4.如权利要求2所述的多串口并行通信系统,其特征在于:所述逻辑判断器用于根据通信耗时判断串口是否使用DMA通道传输,包括:通信耗时最长的串口通过DMA通道传输数据,其他串口通过串口接收中断结合定时发送中断传输数据。

5.如权利要求2所述的多串口并行通信系统,其特征在于:所述中断控制器用于在所述USART串口单元产生接收中断后,执行串口接收中断服务程序,包括:

6.如权利要求2所述的多串口并行通信系统,其特征在于:所述定时周期由实际通信协议规定的通信周期确定;

7.如权利要求2所述的多串口并行通信系统,其特征在于:所述中断控制器还用于串口通信在触发定时中断后,执行定时中断服务程序;

8.如权利要求1所述的多串口并行通信系统,其特征在于:还包括串口终端设备1、串口终端设备2和串口终端设备3;

9.如权利要求1所述的多串口并行通信系统,其特征在于:所述逻辑控制单元通过串口或DMA接收到的数据存储在接收数组中,当进入定时中断时按数据发送顺序根据通信协议对各串口的接收数组进行校验处理,并重置串口接收计数变量。

10.如权利要求9所述的多串口并行通信系统,其特征在于:所述根据通信协议对接收数组进行校验处理包括校对字节数、帧头、帧尾校验;

...

【技术特征摘要】

1.一种基于任务调度的多串口并行通信系统,其特征在于:包括stm32微控制器;

2.如权利要求1所述的多串口并行通信系统,其特征在于:所述定时器用于定时以及根据实际通信协议控制定时周期;

3.如权利要求2所述的多串口并行通信系统,其特征在于:所述逻辑控制单元通过中断控制器,采用多中断任务调度方式,实现串口通信;所述多中断任务调度方式指,根据usart串口单元的接收中断优先级响应中断、响应串口空闲中断和响应定时发送中断;

4.如权利要求2所述的多串口并行通信系统,其特征在于:所述逻辑判断器用于根据通信耗时判断串口是否使用dma通道传输,包括:通信耗时最长的串口通过dma通道传输数据,其他串口通过串口接收中断结合定时发送中断传输数据。

5.如权利要求2所述的多串口并行通信系统,其特征在于:所述中断控制器用于在所述usart串口单元产...

【专利技术属性】
技术研发人员:林鸿谢朴生曾建张强胡业火何丽桦
申请(专利权)人:贵州航天风华精密设备有限公司
类型:发明
国别省市:

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

1