论文部分内容阅读
摘 要: 随着科学技术的不断发展,远程监控系统越来越被人们关注,使用的越来越多,流量监控通信技术在远程监控系统的应用,使得远程监控系统更加成熟,更便于人们的使用,分析实现远程监控系统中流量监控通信程序的设计。
关键词: 远程监控系统;流量监控通信技术;设计
中图分类号:TP277 文献标识码:A 文章编号:1671-7597(2011)1220066-01
目前,远程监控系统被广泛的应用在各个方面,为了实现流量计的远程监控功能,通常将系统设计成为下位机和上位机。
1 下位机流量计通信程序设计
下位机通信程序的开发平台在此选择IAR Embedded Workbench IDE,流量计软件部分完成流量计算、电流信号输出、LCD显示,按键扫描、累积流量计算等功能。上电后,先完成初始化工作,之后开定时中断和通信中断,HART通信收发命令在中断服务程序中完成。主程序流程如下:开始→初始化→通信串口设置→读取FLASH开中断→采集数据→频谱分析→计算流量→计算百分比和累积→420mA电流输出→LCD显示。
HART通信采用的是主从询问/应答通信模式。当上位机向下位机发送查询命令时下位机触发接收中断,进入中断处理程序。
1.1 串行接口。通用串行同步/异步(USART)是一个串行通信接口,它允许7或8位串行位流以预设的速率或外部时钟确定的速率移入、移出MSP430。USART接口支持两种不同的串行协议:通用异步协议(UART协议)和同步协议(SPI协议)。
本系统HART通信是基于MSP430F149的串行接口异步协议(UART协议)得以实现的。MSP430F149的串行接口发送通过P3.4/Tx引脚,接收通过P3.5/Rxd引脚。该串行口具有接收缓冲器,在前一个字节由接收缓冲器读出之前,第二个字节即开始接收,但是,在第二个字节接收完毕而前一个字节未读出时,会丢失前一个字节。串行口的发送寄存器以RXBUF特殊功能寄存器存取的,接收寄存器都以TXBUF特殊功能寄存器存取的。向TXBUF写入即向发送器装载,读RXBUF即是由接收器取出信息。
1.2 波特率的设置。UXBR0 UXBR1波特率选择寄存器0和1。
该两寄存器用于选择波特率发生器的分频器分频因子的整数部分。其中UXBR0为低字节,UXBR1为高字节。两字节合起来为一个16位字,称为UBR。
UXMCTL波特率调整控制寄存器:
如果波特率发生器的输入频率BRCLK为所需波特率的整数倍,则这个倍率就是分频因子,将它写入UBR寄存器即可。但如果波特率发生器的输入频率BRCKL不是所需波特率的整数倍。带有一小数,则整数部分写入UBR寄存器,小数部分由调整控制寄存器UXMCTL的内容反映。波特率由以下公式计算:波特率=BRCLK/(UBR十(M7+ M6+….+M0)/8)
其中M0-M7为调整控制寄存器UXMCTL中的各位。调整寄存器中的8位分别对应8次分频。
1.3 串行口接收/发送中断服务子程序。从设备(智能涡街流量计)发送/接收数据是通过MSP430F149(CPU)的UART串行口中断完成的。在HART通信过程中,一般由主设备(上位机监控系统)发送命令帧,从设备由串行口中断接收命令帧,CPU将命令帧中的数据暂存在接收缓冲区中,待命令帧接收完毕,经CPU适当处理产生欲发回的应答帧放入发送缓冲区,再由CPU触发发送中断(每次发送一个字节),直到应答帧发送完毕。HART通信采用水平和垂直校验方法。譬如,当从设备接收完命令帧后,CPU将帧中的每一个字节逐个进行“异或”操作,若通信无误,结果应为零,否则,水平校验有误。当从设备检测到接收的数据有错时,则应等到主设备命令帧发送完毕以后,从设备发回置有相应错误状态位的应答帧,告知主设备数据接收时有错,此时,主设备重发该命令帧,从而保证了通信的准确性。
载波检测是通信中的一个重要环节。本系统的通信主要是由专用芯片HT2012完成的,当检测到有载波信号在线时,调制解调器HT2012的OCD端就由高电平变为低电平。在设计中,将此引脚与CPU的外部中断P2口触发引脚相连接引脚规定下降沿触发时,一旦检测到由HT2012来的下降沿电平变化,在P2将使CPU进入中断服务程序。
2 上位机监控软件通信程序设计
2.1 VB及MSComm控件在上位机通信应用简介。Visual Basic6.0在保留了原先Basic语言的全部功能的基础上,还增加了面向对象程序设计功能,它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能方便地开发出使用计算机串口的计算机通信程序。串行通讯程序是上位机监控软件中基础和关键的一个环节。
在标准串口通信方面,VB提供了具有强大功能的通信控件MSComm,文件名为MSComm.VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。这是一个标准的十位串口通信,包括8位标准数据和数据的起始位、停止位。每个通信控件对应一个串口,可以设计多个通信控件来访问多个通信口。
VB的MSComm控件提供了一系列标准通信属性和方法,利用它可以屏蔽对硬件的操作,方便快捷的进行对串行通信编程。因此,可通过对Visual Basic的MSComm控件相关属性的设置来对串口进行设置,进而完成通信功能。
通过检查InBufferCount属性值来判定输入缓冲区中是否接收到相应数目的字符或字节。若已接收到相应数目的字符或字节,就可以用Input属性来接收这些字符或字节;否则继续查询InBufferCount属性值,直到满足条件。
软件采用查询方式,通过检查1nBufferCount属性值来判断输入缓冲区中是否收到相应数目的字符,为实现所述通信,在监控主窗体中加入通讯控件MSComm1。
2.2 VB收发数据流程分析。在上位机的通信程序设计中,我们在传送数据时,采用的是先发再收的顺序,即先把准备好的数据发送到串口,然后等待接收数据,接收数据时,在此采用的是查询法,最后判断接收数据是否正确。从而完成整个数据的传送。图1是整个VB收发数据的流程图:
参考文献:
[1]许靖,基于流量监控的视频监控系统优化策略[J].北京邮电大学,2008.05.
关键词: 远程监控系统;流量监控通信技术;设计
中图分类号:TP277 文献标识码:A 文章编号:1671-7597(2011)1220066-01
目前,远程监控系统被广泛的应用在各个方面,为了实现流量计的远程监控功能,通常将系统设计成为下位机和上位机。
1 下位机流量计通信程序设计
下位机通信程序的开发平台在此选择IAR Embedded Workbench IDE,流量计软件部分完成流量计算、电流信号输出、LCD显示,按键扫描、累积流量计算等功能。上电后,先完成初始化工作,之后开定时中断和通信中断,HART通信收发命令在中断服务程序中完成。主程序流程如下:开始→初始化→通信串口设置→读取FLASH开中断→采集数据→频谱分析→计算流量→计算百分比和累积→420mA电流输出→LCD显示。
HART通信采用的是主从询问/应答通信模式。当上位机向下位机发送查询命令时下位机触发接收中断,进入中断处理程序。
1.1 串行接口。通用串行同步/异步(USART)是一个串行通信接口,它允许7或8位串行位流以预设的速率或外部时钟确定的速率移入、移出MSP430。USART接口支持两种不同的串行协议:通用异步协议(UART协议)和同步协议(SPI协议)。
本系统HART通信是基于MSP430F149的串行接口异步协议(UART协议)得以实现的。MSP430F149的串行接口发送通过P3.4/Tx引脚,接收通过P3.5/Rxd引脚。该串行口具有接收缓冲器,在前一个字节由接收缓冲器读出之前,第二个字节即开始接收,但是,在第二个字节接收完毕而前一个字节未读出时,会丢失前一个字节。串行口的发送寄存器以RXBUF特殊功能寄存器存取的,接收寄存器都以TXBUF特殊功能寄存器存取的。向TXBUF写入即向发送器装载,读RXBUF即是由接收器取出信息。
1.2 波特率的设置。UXBR0 UXBR1波特率选择寄存器0和1。
该两寄存器用于选择波特率发生器的分频器分频因子的整数部分。其中UXBR0为低字节,UXBR1为高字节。两字节合起来为一个16位字,称为UBR。
UXMCTL波特率调整控制寄存器:
如果波特率发生器的输入频率BRCLK为所需波特率的整数倍,则这个倍率就是分频因子,将它写入UBR寄存器即可。但如果波特率发生器的输入频率BRCKL不是所需波特率的整数倍。带有一小数,则整数部分写入UBR寄存器,小数部分由调整控制寄存器UXMCTL的内容反映。波特率由以下公式计算:波特率=BRCLK/(UBR十(M7+ M6+….+M0)/8)
其中M0-M7为调整控制寄存器UXMCTL中的各位。调整寄存器中的8位分别对应8次分频。
1.3 串行口接收/发送中断服务子程序。从设备(智能涡街流量计)发送/接收数据是通过MSP430F149(CPU)的UART串行口中断完成的。在HART通信过程中,一般由主设备(上位机监控系统)发送命令帧,从设备由串行口中断接收命令帧,CPU将命令帧中的数据暂存在接收缓冲区中,待命令帧接收完毕,经CPU适当处理产生欲发回的应答帧放入发送缓冲区,再由CPU触发发送中断(每次发送一个字节),直到应答帧发送完毕。HART通信采用水平和垂直校验方法。譬如,当从设备接收完命令帧后,CPU将帧中的每一个字节逐个进行“异或”操作,若通信无误,结果应为零,否则,水平校验有误。当从设备检测到接收的数据有错时,则应等到主设备命令帧发送完毕以后,从设备发回置有相应错误状态位的应答帧,告知主设备数据接收时有错,此时,主设备重发该命令帧,从而保证了通信的准确性。
载波检测是通信中的一个重要环节。本系统的通信主要是由专用芯片HT2012完成的,当检测到有载波信号在线时,调制解调器HT2012的OCD端就由高电平变为低电平。在设计中,将此引脚与CPU的外部中断P2口触发引脚相连接引脚规定下降沿触发时,一旦检测到由HT2012来的下降沿电平变化,在P2将使CPU进入中断服务程序。
2 上位机监控软件通信程序设计
2.1 VB及MSComm控件在上位机通信应用简介。Visual Basic6.0在保留了原先Basic语言的全部功能的基础上,还增加了面向对象程序设计功能,它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能方便地开发出使用计算机串口的计算机通信程序。串行通讯程序是上位机监控软件中基础和关键的一个环节。
在标准串口通信方面,VB提供了具有强大功能的通信控件MSComm,文件名为MSComm.VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。这是一个标准的十位串口通信,包括8位标准数据和数据的起始位、停止位。每个通信控件对应一个串口,可以设计多个通信控件来访问多个通信口。
VB的MSComm控件提供了一系列标准通信属性和方法,利用它可以屏蔽对硬件的操作,方便快捷的进行对串行通信编程。因此,可通过对Visual Basic的MSComm控件相关属性的设置来对串口进行设置,进而完成通信功能。
通过检查InBufferCount属性值来判定输入缓冲区中是否接收到相应数目的字符或字节。若已接收到相应数目的字符或字节,就可以用Input属性来接收这些字符或字节;否则继续查询InBufferCount属性值,直到满足条件。
软件采用查询方式,通过检查1nBufferCount属性值来判断输入缓冲区中是否收到相应数目的字符,为实现所述通信,在监控主窗体中加入通讯控件MSComm1。
2.2 VB收发数据流程分析。在上位机的通信程序设计中,我们在传送数据时,采用的是先发再收的顺序,即先把准备好的数据发送到串口,然后等待接收数据,接收数据时,在此采用的是查询法,最后判断接收数据是否正确。从而完成整个数据的传送。图1是整个VB收发数据的流程图:
参考文献:
[1]许靖,基于流量监控的视频监控系统优化策略[J].北京邮电大学,2008.05.