车流量测量仪串口通信的设计与实现
0 引 言
车流量测量仪是一种用于统计高速公路路口车流量的测量仪器,总体结构如图1所示。它接收车流量数据,并写入到电子磁盘的特定文件中。用户既可以通过与测量仪中的Modem建立连接,也可通过IC卡,读取电子磁盘中的车流量数据,并把它们转存到用户数据库中。目前,测量仪为用户提供的主要功能有:键盘菜单命令,包括日期、时间设置,写IC卡,删除文件以及查看电子磁盘可用空间等,用户可以通过这些预定义菜单命令操纵测量仪;与测量仪Modem建立连接,读取电子磁盘中的车流量数据,或向测量仪发送预定义控制指令来实现上述部分菜单命令的功能。
该测量仪的控制软件是在DOS操作系统下用TurboC++编写而成,测量仪涉及的核心功能主要是串口通信和键盘操作处理。其中,串口通信主要包括数据接收、存储以及Modem间的通信等,文中主要介绍测量仪控制软件设计与实现中的串口通信部分。
1 硬件基本结构及原理简介
RS-232串口通信标准是目前最流行的串口通信方案,大多数PC机一般有两个RS-232串行接口:COM1,COM2,它们的物理基址分别是3F8和2F8。这里用8250作为车流量测量仪的串口通信芯片(SCC)。8250SCC常用的内部寄存器有:接收/发送数据寄存器,中断使能寄存器IER,中断标识寄存器IIR(只读),线路控制寄存器LCR,Modem控制寄存器MCR,线路状态寄存器LSR(只读),Modem状态寄存器MSR(只读),波特率因子(除数)高字节、低字节;其中波特率因子(除数)低字节与接收/发送数据寄存器共用地址3F8/2F8,波特率因子(除数)高字节与IER共用地址3F9/2F9,以DLAB位(除数锁存器访问位)区分,DLAB为1时操纵的寄存器为波特率因子(除数)高、低字节[1~3]。Modem有两种工作状态:联机状态和命令状态。在命令状态下Modem接受并执行计算机发来的命令;在联机状态下,接收数据并传送它。命令状态下Modem拨号后即等待载波,当检测到线路有载波后即进入联机状态;联机状态下Modem检测到线路无载波又返回命令状态[1,3]。一般是通过AT指令对Modem进行控制的。
在车流量测量仪中,通过COM1接口与Modem连接,而接收数据则是通过COM2口进行。考虑到效率和编程的复杂性,直接访问和控制8250内部的寄存器,这样就可以采用中断方式来实现系统的功能了。
2 控制软件的方案分析
测量仪的功能主要有数据采集与数据存储、通过Mo-dem与上位机通信、一般键盘操作以及通过键盘指定某一季度的文件写入IC卡中等。考虑到高速路口车流量的频度以及数据采集的有效性和准确性的要求,对于从串口接收或从测量仪发送给上位机的数据首先暂存在一个先进先出的缓冲区中,然后再通过对该缓冲区的读/写把数据发送到数据端口或送到主机处理。在串口通信程序结构的设计上,为每一个串口开辟一个足够大的输入缓冲区和输出缓冲区,以保证测量仪对操作处理的实时性和车流量数据接收的准确性[2]。
相关文章
- 2023-03-26应用SolidWorks进行焊接结构设计
- 2023-07-20用功率谱密度函数评价光学面形中频误差特性
- 2023-06-02浅述经纬仪检定中望远镜常见故障及解决方法
- 2023-04-21非金属热电偶在高温探测中的应用研究
- 2023-05-17指纹识别技术门禁应用的解决方案
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。