谭荆
(重庆工商大学计算机与信息工程学院,中国 重庆 400067)
【摘 要】本文介绍一种微机记录仪的软件设计,详细介绍了微机记录仪软件设计的运用依据,根据微机记录仪特点设计各种接口及应用。主要包括程序设计、数据采集、存储程序、运算程序、显示程序、数据处理程序、通讯程序等。本设计完全满足微机记录仪标准规定的各项指标,完全能适应工业现场使用环境的需要。
教育期刊网 http://www.jyqkw.com
关键词 单片机;数据采集;通信接口;数据处理
作者简介:谭荆(1979.08—),男,重庆人,硕士,重庆工商大学计算机与信息工程学院,研究方向为电子信息系统。
1系统软件的方案设计
对于一般的控制系统的软件指的是它的全部程序,包括系统软件和应用软件两大类,在本设计中运用到的都是应用软件,包括上位机用到的微机记录仪分析系统和下位机各种的监控程序,根据各功能模块的不同,监控程序主要有以下几个构成:
(1)数制变化程序-在数据分析中,要将A/D采集的二进制数据转换为可以处理的浮点数以及可以显示的BCD等。
(2)运算程序-实现数据分析的加、减、乘、除、开方和函数运算。
(3)数字滤波程序—用于对数据筛选处理,尽量保证数据的有效性。
(4)工程测量程序—在数据显示时有些信号必须要进行标度转换后才能显示。
(5)查表程序—由于系统涉及到很多种热电偶、热电阻信号,必须通过查表来确定对应的温度值。
(6)报警程序—按要求微机记录仪系统设计中必须带有报警输出功能。
(7)数据采集程序—完成数据采集。
(8)通讯程序—将数据通过USB接口传输到优盘或通过RS485通讯方式传输到中央控制室。
(9)还有根据用户需要设计各种控制算法程序,比如PID程序。
2系统主要软件结构设计
系统通过软件流程来完成设定任务,CPU通过对接口电路确定工作方式、选择功能、发送特定信息来控制外部设备完成规定任务。接口软件的特点就是其和硬件的紧密结合。系统软件的设计主要有5部分:程序设计、数据采集、存储程序、运算程序、显示程序、数据处理程序、通讯程序。
2.1.1主程序设计
本设计主程序主要完成的目的有:将系统初始化,定义单片机的I/O控制寄存器,芯片配置寄存器,中断控制寄存器定义等。
2.1.2数据采集程序
系统将A/D采样设计为外部中断处理程序,并且设置为中断最高级别就是保证采集记录为重要地位。AD采集流程如图2:
2.1.3数据处理程序
具体的流程图3:
2.1.4通讯程序
本系统的通讯系统包括RS485通讯和USB接口与优盘之间的通讯。
串口和上位机之间的通讯,设置为中断法通讯即当控制中心计算机发出对微机记录仪进行通讯命令请求的时候,CPU在没有其他高级中断在执行的情况下,中断当前正在执行的程序,来响应控制中心计算机的通讯要求。和USB之间的通讯设置为移位寄存器方式即有CPU在扫描到有键盘输入命令后,在没有任何中断程序执行的情况下,立即进行将历史数据存入优盘的工作。
和上位机的通讯波特率在本系统中设置了2400,4800,9600和19200四种通讯特率。用户根据自己的实际情况可以选择不同的波特率进行通讯。
由于单片机的波特率由16位寄存器(BAUD_REG)中的内容决定,具体的公式在前面已经讲过,在实际运用时BAUD_REG取值的最高位为1,表示选用XTAL1作为频率源,低15位才是计算的波特率值。
设置好工作方式和波特率后在单片机中还必须明确一下几点:
使用串口发送数据时,首先要将IOC1.5设置为1,表示选择了TXD/P2.0引脚的TXD功能,在接收的候,应将SP_CON寄存器REN设置为1,即选择RXD/P2.1。
波特率寄存器BAUD_REG在片内特殊功能寄存器(SFR)区域内虽然用同一个字节地址(0EH)表示,但实际上它是16位寄存器。因此,在设计串口波特率时,应将波特率常数用字节传送指令分两次写入片内0EH单元中。
直接读SP_SATAT寄存器时,TI和RI标志读出后都会被清除,为了避免这一点,可对其进行间接读出,例如先把寄存器中的内容拷贝到某个通用的寄存器中,然后在判断此寄存器中TI和RI对应状态位的值即可。
串口发送和接收中断共用一个中断向量,因此进入中断服务程序后要进一步的测试SP_SATAT寄存器的内容,确定系统是需要发送还是接收。
进行USB接口程序的通讯时首先要从新对单片机进行串口设置,将串口方式设置为0,即串口既可以送出数据又可接收数据。
ORB IOC1,#20H ; 选择P2.0引脚的TXD功能。
LDB BAUD_REG,#01H ;波特率低字节。
LDB BAUD_REG,#80H;波特率的高字节,波特率设置为1.5Mbps。
LDB SP_CON,#00H;方式0,关接收,不检测。
然后就可以向USB接口模块实现数据传输.当USB接口模块之间的通讯结束以后立即将通讯方式设置1为中断方式,即保持与控制室接收信号的状态.
进行上下位机之间通讯的时候前单片机设置为:
ORBICO1,#20H;选择P2.0的TXD功能。
LD 30H,#低字节波特率存放地址。
LDB BAUD_REG,[30H] ;将30H中对应地址位中的波特率低字节取出存放在波特率寄存器中。
LDB BAUD_REG,#80H;波特率的高字节。
LDB SP_CON,#09H;方式0,关接收,不检测。
LD AX,# 中断向量地址。
ST AX,200C[0]
STB SBUF,20H ;清串口缓冲器。
LDB INT_MASK,#40H;允许串口中断。
当有控制信号发来的通讯请求时自动实现了接收中断,发送的时候还是采取查询的方式。
3结论
根据以上理论依据设计出的微机记录仪运用效果很好,证明了设计的合理性。同时可以通过对信号采集、信号处理、软/硬件设计的加强,提高微机记录仪在现场工作的稳定性、可靠性和先进性。
教育期刊网 http://www.jyqkw.com
参考文献
[1]谢燊.微机记录仪的现状及发展趋势[J].自动化与仪器仪表,2001(3):24-25.
[2]汪建.MCS-96系列单片机原理及运用技术[M].武汉:华中理工大学出版社,1999(01):39-371.
[3]周立功.等,编.PDIUSBD12 USB固件编程与驱动开发[J].电子世界,2003(2).
[责任编辑:薛俊歌]