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

单片机组成的集散控制系统中双串口同时通讯的实现

时间:03-21 来源:互联网 点击:

作指南。

(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