微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机双串口同时通讯的实现

单片机双串口同时通讯的实现

时间:04-01 来源:互联网 点击:

可选择部分或全部浏览各种自动抄表数据和实时巡测数据。

(5)方便多样的查询功能。

(6)自动故障诊断、事件记录和信息追忆功能。

(7)进行负荷分析,统计各种曲线图表。

(8)多级口令管理,防止非授权人员操作的功能。  

(9)各种报表曲线图形的打印和完善的操作指南。

2.2 集中器中双串口CPU同时通讯的实现

由于集中器要实现和上位机与采集模块的同时通讯,采用一片具有双串口的CPU,该CPU具有2个串口和2个串口中断,串口1中断处理与上位机的通讯,串口2中断处理与采集模块的通讯,串口1中断设置为高优先级中断,每接塑到或发送完一个字节都进入中断处理,处理完毕立即退出中断,通讯波特率都为9 600 b/s,一个起始位和一个停止位。

首先要解决时间冲突问题,硬件接受或发送一个字节的时间为1 ms左右,而软件接受或发送一个字节的时间仅几μs,这就为双串口同时通讯提供了条件。同时通讯实际上是将CPU时间分成很小的时间片,假设较快的串口发送或接受一个字节的最长时间为TRbyteMax,则CPU最长时间片一般应小于TRbyteMax/2,当然在接受或发送完一帧数据之后的间隙,CPU时间片可以适当延长,作一些必要的数据处理。

其次要解决数据冲突问题,2个串口通讯分别使用各自的接受发送数据缓冲区和控制变量,以减少中断保护数据量和防止数据冲突。当主程序、串口2中断处理程序和其他中断处理程序往存储器(与上位机的通讯用存储器)中写数据时,需在尽量短的时间内关闭串口1中断,关闭中断时间应小于几百μs,防止其他程序数据没有写完之前串口1读此数据。

同时需要注意一些其他问题:尽量采用模块化、结构化、对象化编程,使串口通讯程序和其他程序之间、2个串口通讯程序之间相互独立,以减少发生错误的机会。另外串口通讯中,还要增加通讯超时处理机制,中断处理中要注意数据和程序状态的保护,完善出错处理程序,使用电源监测掉电保护硬件和看门狗技术等。

串口通讯数据帧中采用高可靠性的循环冗余校验(CRC)技术,极大地降低了数据误码率,在连续运行几个月的大量数据中没有发现误码。

3 结语

本系统设计采用模块化、结构化、对象化的程序设计方法,硬件冗余设计和软硬件自动故障诊断,使系统具有高可靠性和高实时性。系统使用大量报表和动态图形曲线,具有友好的人机交互界面。专用掌上电脑可现场初始化,操作简便、维修快捷。同时具有在线设置方便、硬件配置灵活多样、适用范围广、通用性好、性能价格比高等特点。

本系统已在电厂连续可靠运行,有很高的抄收成功率,抄收数据无误码。可广泛应用于大中型企业和电厂,为现代化发电用电管理提供可靠的数据来源。

本系统可做进一步改进,针对不同类型的应用,在DCS中加入相应的统计分析模块和控制单元,达到自动控制的目的。

参考文献
[1]Modicon modbus protocol reference guide.PI- MBUS - 300 Rev. J. MODICON ,Inc. ,Industrial Automation Systems . June 1996.
[2]何立民.单片机应用系统[M].北京:北京航空航天大学出版社,1992.
[3]High - speed microcontrollers . DataBook of Dallas Semiconductor Corp.1999.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top