CN101241451A - 一种嵌入式系统的串口可靠通讯控制方法 - Google Patents
一种嵌入式系统的串口可靠通讯控制方法 Download PDFInfo
- Publication number
- CN101241451A CN101241451A CNA2008100706442A CN200810070644A CN101241451A CN 101241451 A CN101241451 A CN 101241451A CN A2008100706442 A CNA2008100706442 A CN A2008100706442A CN 200810070644 A CN200810070644 A CN 200810070644A CN 101241451 A CN101241451 A CN 101241451A
- Authority
- CN
- China
- Prior art keywords
- serial port
- timer
- task
- serial ports
- serial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及串口通讯领域,具体说涉及一种嵌入式系统的串口可靠通讯控制方法。技术方案是:在嵌入式系统中内存连续地址开设一个接收缓冲区FIFO,采用串口中断工作模式,分为前台和后台两个层次,后台完成串口接收功能;前台在串口任务接收完成后对接收缓冲区的数据进行解析处理。一字节物理地址对接收任务计时,如果通讯中,该计时器被赋一非零值,一旦变为零,说明接收任务完成。本发明仅需少量的资源,就较好地解决了串口通讯任务中潜在的非有限性、不连续性和间断性等导致的任务超时问题,提高了串口抗干扰和容错、纠错能力。
Description
技术领域
本发明涉及串口通讯领域,具体说涉及一种嵌入式系统的串口可靠通讯控制方法。
背景技术
串行通讯因其技术简单成熟、性能可靠,对软硬件环境要求低,而广泛应用于各种设备中如调制解调器、监控模块、PLC、摄像头云台及相关智能设备等,绝大多数的微处理器把串口作为基本接口,提供用户开发使用。在进行串口通讯开发时,无论是半双工还全双工,通常有两种方法:查询等待方式和中断接受方式。一般来说,中断方式因其运行效率高,处理及时等优点更受到青睐。在开发过程中,都会为串口接受定义一个独立的、循环FIFO缓存区,用于保存接受的数据,在完成一批数据接受后,再由协议解析模块对串口接受缓存区中的数据进行分析处理。专利ZL02202999.0发明了一种防吊死电路,防止硬件连接出现“吊死”,以保证多个系统间串口的可靠工作。
但在硬件通讯正常时,仍然会出现一些异常情况如串口连接线断开,或长度错误时,都会给数据处理带来困难,甚至影响串口后续工作的顺利完成。
发明内容
本发明的目的是克服上述缺点,提供一种控制方法,能够约束串口通讯的处理时间,在发生上述异常情况时,仍然可以将串口接收使用的资源恢复正常,从而提高串口资源的可靠性和稳定性。
为实现本发明的目的而采用的技术方案是:在嵌入式系统内存连续地址开设一个接收缓冲区FIFO,采用串口中断工作模式,分为前台和后台两个层次,后台属于串口中断处理部分,仅完成串口接收功能;前台部分在串口任务接收完成后,对保存在缓冲区的数据进行处理,主要在主程序循环结构中执行。嵌入式系统内部一字节物理地址对接收任务计时,如果通讯接收中,则该计时器被赋一非零值,该计时器在定时器中断服务程序中被减一处理,一旦变为零,说明接收任务完成;后台程序一旦监测到该计时器为零,则启动后台对串口缓冲区数据的解析处理。
本发明的有益效果是利用嵌入式系统的定时器和串口模块,仅需少量的资源,就较好地解决了上述问题,提高了串口抗干扰和容错、纠错能力;且设计方案独立于任务处理模块之外,不干扰、不影响其他任务的运行结果。
附图说明
图1是本发明的串口FIFO结构。
图2是本发明的主程序流程图。
图3是本发明的串口接收中断处理流程图。
图4是本发明的定时器中断对串口接收计时器处理流程图。
图1中,1,2,3,4,...N,(N+1),(N+2),(N+3)为嵌入式系统中RAM的单元地址,其中1,2,3,4,...,N保存串口接收的内容,(N+1)记录串口接收的字节数。
具体实施方案
下面结合附图2,3,4本发明作进一步说明。
图2是主程序流程图:
步骤201:初始化模块负责整个系统的初始化;
步骤202:后台任务模块,在该模块中串口通讯启动,在串口通讯中启动的同时启动计时器,计时器的详细设定方案结合图3说明;
步骤203:串口接收超时判断,根据后台模块提供的计时器的数值是否等于0来判断是否对串口资源实行回收,当计时器的数值等于0表明串口通讯已经出现超时,否则,继续主循环的程序;
步骤204:当串口通讯出现超时,执行串口数据处理,对已经接收的数据根据系统的设定判断其局部的完整性,如果数据可用则保存,否则直接回收存储资源;
步骤205:串口资源初始化为下一轮接收数据做准备。
图3是串口接收中断处理流程图:
步骤301:中断入口,程序启动现场保护;
步骤302:判断是否为串口中断,如果是串口中断则开始串口数据处理;
步骤303:串口接收计数器加1,用来指定接收数据保存地址同时设定串口接收计时器的初始值;
步骤304:串口数据处理程序;
步骤305:结束串口中断数据处理恢复现场退出中断处理模块。
图4是定时器中断对串口接收计时器处理流程图:
步骤401:中断入口,程序启动现场保护;
步骤402:判断是否为定时中断,如果是定时中断则开始限时处理;
步骤403:判断串口接收计时器是否为0,如果为0表示计数器已经完成计数工作,不再计数退出限时模块;
步骤404:串口接收计时器减1;
步骤405:完成本轮计时中断,恢复现场退出中断处理模块。
Claims (3)
1、一种单片机串口资源的可靠通讯控制方法,在嵌入式系统内存连续地址作为接收缓冲区,串口中断工作模式,其特征是将接收缓冲区分为前台和后台两个层次;将嵌入式系统内部一字节物理地址的接收任务计时方式设置成通讯中为非零值,接收任务完成为零值。
2、根据权利要求1所述的单片机串口资源的可靠通讯控制方法,其特征是所述的收缓冲区的前台部分在串口任务接收完成后,对保存在缓冲区的数据进行处理,主要在主程序循环结构中执行,后台属于串口中断处理部分,仅完成串口接收功能。
3、根据权利要求1所述的单片机串口资源的可靠通讯控制方法,其特征是所述的接收任务计时方式,如果通讯接收中,则该计时器被赋一非零值,该计时器在定时器中断服务程序中被减一处理,一旦变为零,接收任务完成;后台程序一旦监测到该计时器为零,则启动后台对串口缓冲区数据的解析处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100706442A CN101241451A (zh) | 2008-02-20 | 2008-02-20 | 一种嵌入式系统的串口可靠通讯控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100706442A CN101241451A (zh) | 2008-02-20 | 2008-02-20 | 一种嵌入式系统的串口可靠通讯控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101241451A true CN101241451A (zh) | 2008-08-13 |
Family
ID=39932997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100706442A Pending CN101241451A (zh) | 2008-02-20 | 2008-02-20 | 一种嵌入式系统的串口可靠通讯控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101241451A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064751A (zh) * | 2012-12-27 | 2013-04-24 | 中航(苏州)雷达与电子技术有限公司 | 一种消除航空电子设备rs232串口干扰的方法 |
CN103164349A (zh) * | 2013-04-11 | 2013-06-19 | 东信和平科技股份有限公司 | 一种改进了spi接口子模块的智能卡模块 |
CN103647728A (zh) * | 2013-12-07 | 2014-03-19 | 成都亿盟恒信科技有限公司 | 一种STM32单片机与Linux系统高速串口抗干扰通讯方法 |
CN105512074A (zh) * | 2015-07-09 | 2016-04-20 | 上海盛善电气有限公司 | 一种串行通信自检冗余的设计方法 |
CN106502864A (zh) * | 2016-10-26 | 2017-03-15 | 厦门科灿信息技术有限公司 | 一种数据监控系统的通讯管理方法 |
CN113655316A (zh) * | 2021-08-17 | 2021-11-16 | 南京智睿能源互联网研究院有限公司 | 一种基于串口通讯技术的低压svg设备测试系统 |
-
2008
- 2008-02-20 CN CNA2008100706442A patent/CN101241451A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064751A (zh) * | 2012-12-27 | 2013-04-24 | 中航(苏州)雷达与电子技术有限公司 | 一种消除航空电子设备rs232串口干扰的方法 |
CN103064751B (zh) * | 2012-12-27 | 2015-11-04 | 中航(苏州)雷达与电子技术有限公司 | 一种消除航空电子设备rs232串口干扰的方法 |
CN103164349A (zh) * | 2013-04-11 | 2013-06-19 | 东信和平科技股份有限公司 | 一种改进了spi接口子模块的智能卡模块 |
CN103164349B (zh) * | 2013-04-11 | 2015-12-02 | 东信和平科技股份有限公司 | 一种改进了spi接口子模块的智能卡模块 |
CN103647728A (zh) * | 2013-12-07 | 2014-03-19 | 成都亿盟恒信科技有限公司 | 一种STM32单片机与Linux系统高速串口抗干扰通讯方法 |
CN103647728B (zh) * | 2013-12-07 | 2016-06-08 | 成都亿盟恒信科技有限公司 | 一种STM32单片机与Linux系统高速串口抗干扰通讯方法 |
CN105512074A (zh) * | 2015-07-09 | 2016-04-20 | 上海盛善电气有限公司 | 一种串行通信自检冗余的设计方法 |
CN106502864A (zh) * | 2016-10-26 | 2017-03-15 | 厦门科灿信息技术有限公司 | 一种数据监控系统的通讯管理方法 |
CN113655316A (zh) * | 2021-08-17 | 2021-11-16 | 南京智睿能源互联网研究院有限公司 | 一种基于串口通讯技术的低压svg设备测试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101241451A (zh) | 一种嵌入式系统的串口可靠通讯控制方法 | |
CN102662782B (zh) | 一种监控系统总线的方法及装置 | |
CN104052758A (zh) | 电能表多通信协议的自适应方法 | |
CN101464819B (zh) | 进入低功率模式前的硬件驱动处理器状态存储 | |
CN105577567A (zh) | 基于Intel DPDK的网络数据包并行处理方法 | |
CN103200015A (zh) | 一种poe交换机供电方法 | |
WO2017218700A1 (en) | Systems and methods for non-uniform memory access aligned i/o for virtual machines | |
CN104750567A (zh) | 一种基于fpga的看门狗复位方法 | |
CN100469055C (zh) | 转发报文的处理方法及处理装置 | |
CN107771331A (zh) | 独立式uark brk检测 | |
CN110166378B (zh) | 一种用于配网终端调试维护的通信系统及方法 | |
CN105472377A (zh) | 电视机调试方法及装置 | |
CN102521060A (zh) | 基于看门狗本地检测技术的高可用集群系统假死解决方法 | |
CN109766197A (zh) | 一种基于Android系统的4G模块稳定工作方法 | |
CN102890661A (zh) | 一种主从机通讯协议 | |
CN106506265B (zh) | 检测fpga芯片挂死的方法及装置 | |
CN101488105A (zh) | 实现存储双控制器高可用性的方法及存储双控制器系统 | |
CN103746842A (zh) | 一种检测线卡故障重起的方法及系统 | |
CN101369238A (zh) | Usb设备中异常监控复位处理方法 | |
CN106445854A (zh) | 支持串行接口透明传输的方法及系统 | |
CN110324208A (zh) | 一种数据丢失处理方法、智能终端及存储介质 | |
CN101739115A (zh) | 精简型计算机主机及精简型计算机主机唤醒方法 | |
CN101989249A (zh) | 一种单片机串口数据接收方法 | |
CN104881379B (zh) | 一种串口通信方法 | |
CN105721342A (zh) | 多进程设备的网络连接方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080813 |