【摘 要】介绍了两个方面的内容,一是路桥收费系统中PC机与LED显示屏的串行通信实现方案,另一个是LED显示字符点阵数据的提取方法。
关键词:串行通信 通信协议 点阵数据提取
近年来路桥收费管理系统不断地向自动化、智能化的方向发展,它除了要完成基本的收费功能外,还需要对一些外部设备进行管理。这些外部设备是收费站与车辆司乘人员最直接的交流窗口,它不仅要控制车辆的放行和禁止,而且还要能够给出有关车辆的车型、收费金额等提示信息。这些信息的给出是由信号灯、LED显示屏、数码管显示器、语音报价器等外设来完成的。
在我们所设计的路桥收费管理系统中,道口工作站对这些外部设备的控制是通过两者之间的串行通信实现的。下面我们仅以LED显示屏为例,介绍工作站与外设的串行通信实现方案以及LED显示字符点阵数据的提取方法。
1 道口工作站与LED显示屏的串行通信
为了实现道口工作站和LED显示屏的串行通信,我们首先在两者之间定义了一个通信协议 。在本协议中主控器即道口工作站的PC机程序由VB语言编写,被控器单片机程序由C51语言编写。该串行通信是在PC机的RS-232串行口和MCS-51系列单片机的UART串行口之间进行的。下面首先给出通信协议的定义。
1.1 通信协议
(1)通信常量的定义
通信常量的定义见表1。
当主控器或被控器发送命令时,对前几个需要发送的字节作异或处理得到BCC校验码 ,并将该校验码作为最后一个字节发送。接收命令时,接收方对收到的所有字节进行异或处理,若为零,则表示数据传输无误,否则进行出错处理。
(2)主控器写命令执行方式
主:
(若末收到被控器发出的ACK或收到的BCC校验出错,该命令重发一次,共允许重发三次)
(若收到被控器发出的NAC或接收的BCC校验出错,该命令重发一次,共允许重发三次)
(4)错误定义
信息传输失败:主控器发出一条信息后收到被控器的错误应答(包括校验出错),计为一次传输失败。
超时:主控器发出一条信息后,过0.5s被控器无回音;被控器发出一条信息后,过0.1s主控器无回音。
超数:一条信息传输失败,重试三次仍失败。
(5)错误处理
当主控器收到被控器的错误应答(包括校验出错)时,在不超数的情况下,主控器将重新发送命令。若被控器超时一次,计为信息传输失败一次。若被控器超数,则丢失本次传输所有数据,回到正常工作状态。
1.2 通信程序的编写
根据通信协议,我们使用VB语言在主控器PC机的通信窗体中共编写了三个函数:通信的初始设置函数、主控器写命令函数、主控器读命令函数。其中初始设置函数主要完成串口的打开与关闭、通信端口号的设置以及波特率、校验方式、数据位、停止位的设置等。主控器写命令函数主要完成工作站的PC机向LED显示屏发送各种需要显示的问候语以及收费金额、余额等信息。主控器读命令函数主要用于读取LED显示屏的状态信息。
在该通信窗体中,我们使用了一个Active X控件Mscomm,该控件通过串行端口发送和接收数据,下面是有关该控件的一些属性说明。
图1给出了主控器写命令函数的程序流程图。由图1可知,在整个通信过程中,我们在主控器PC机的程序里设置了三个出错检测点:a)检测被控器·发出的ACK信号以及BCC校验是否正确;b)检测被控器的响应是否超时;c)检测信息传输失败是否连续超过3次。经过我们的实践证明,该串行通信实现方案较好地保证了信息传输的可靠性,运行也非常稳定。
2 LED显示字符点阵数据的提取
一般来说,路桥收费管理系统中LED显示屏并不需要显示整个字模库中的字符,而只需显示某些特定的汉字和数字字符,如各种提示信息、收费金额、固定的问候语等。因此为了简化LED部分的电路规模、降低成本,我们只需提取所需的特定字符的点阵数据。
在我国的汉字字模库中,每一个字符,包括汉字、数字、英文字母等都是按照区位码的顺序存储的,因此提取所需的特定字符的点阵数据可以采用两种方法,一是首先从区位码表中查出需要显示的每一个字符的区位码,然后根据这些区位码采用文件定位的方式从汉字字模库中提取出点阵数据;另一种方法是对每一个显示字符,根据其ASCII码和区位码的关系首先获得该字符的区位码,然后根据区位码提取出点阵数据。相对而言第二种方法比较灵活方便 ,而且也节省了设计者的时间。
下面以16×16点阵汉字字模库为例,给出VB语言编写的获得特定字符点阵数据的具体程序。
End If
’以下将根据区位码采用文件定位的方式从文件1中获得该字符的数据信息,
’并将其写入文件2
以上介绍了PC机和LED显示屏的串行通信实现方案以及LED显示字符点阵数据的提取方法,其中本方案中提及的通信协议也可以应用于PC机和其他外设的串行通信,有效地保证数据传输的可靠性。当LED并不需要显示整个汉字字模库中的字符时,可以采用本文提供的点阵数据的提取方案,但是在某些情况下,若LED需要显示所有的国标一级汉字字符,则可以直接采用文件定位的方法从第1区开始提取(此时提取的点阵数据包含有英文字母和数字等非汉字字符),也可以从第16区开始提取数据(此时提取的全部是汉字数据)。在实际应用中,读者可以根据自己的需要对串行通信协议以及点阵数据的提取方法进行选择和修改。
2 李华,孙晓民等.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,1999
关键词:串行通信 通信协议 点阵数据提取
近年来路桥收费管理系统不断地向自动化、智能化的方向发展,它除了要完成基本的收费功能外,还需要对一些外部设备进行管理。这些外部设备是收费站与车辆司乘人员最直接的交流窗口,它不仅要控制车辆的放行和禁止,而且还要能够给出有关车辆的车型、收费金额等提示信息。这些信息的给出是由信号灯、LED显示屏、数码管显示器、语音报价器等外设来完成的。
在我们所设计的路桥收费管理系统中,道口工作站对这些外部设备的控制是通过两者之间的串行通信实现的。下面我们仅以LED显示屏为例,介绍工作站与外设的串行通信实现方案以及LED显示字符点阵数据的提取方法。
1 道口工作站与LED显示屏的串行通信
为了实现道口工作站和LED显示屏的串行通信,我们首先在两者之间定义了一个通信协议 。在本协议中主控器即道口工作站的PC机程序由VB语言编写,被控器单片机程序由C51语言编写。该串行通信是在PC机的RS-232串行口和MCS-51系列单片机的UART串行口之间进行的。下面首先给出通信协议的定义。
1.1 通信协议
(1)通信常量的定义
通信常量的定义见表1。
当主控器或被控器发送命令时,对前几个需要发送的字节作异或处理得到BCC校验码 ,并将该校验码作为最后一个字节发送。接收命令时,接收方对收到的所有字节进行异或处理,若为零,则表示数据传输无误,否则进行出错处理。
(2)主控器写命令执行方式
主:
(若末收到被控器发出的ACK或收到的BCC校验出错,该命令重发一次,共允许重发三次)
(若收到被控器发出的NAC或接收的BCC校验出错,该命令重发一次,共允许重发三次)
(4)错误定义
信息传输失败:主控器发出一条信息后收到被控器的错误应答(包括校验出错),计为一次传输失败。
超时:主控器发出一条信息后,过0.5s被控器无回音;被控器发出一条信息后,过0.1s主控器无回音。
超数:一条信息传输失败,重试三次仍失败。
(5)错误处理
当主控器收到被控器的错误应答(包括校验出错)时,在不超数的情况下,主控器将重新发送命令。若被控器超时一次,计为信息传输失败一次。若被控器超数,则丢失本次传输所有数据,回到正常工作状态。
1.2 通信程序的编写
根据通信协议,我们使用VB语言在主控器PC机的通信窗体中共编写了三个函数:通信的初始设置函数、主控器写命令函数、主控器读命令函数。其中初始设置函数主要完成串口的打开与关闭、通信端口号的设置以及波特率、校验方式、数据位、停止位的设置等。主控器写命令函数主要完成工作站的PC机向LED显示屏发送各种需要显示的问候语以及收费金额、余额等信息。主控器读命令函数主要用于读取LED显示屏的状态信息。
在该通信窗体中,我们使用了一个Active X控件Mscomm,该控件通过串行端口发送和接收数据,下面是有关该控件的一些属性说明。
图1给出了主控器写命令函数的程序流程图。由图1可知,在整个通信过程中,我们在主控器PC机的程序里设置了三个出错检测点:a)检测被控器·发出的ACK信号以及BCC校验是否正确;b)检测被控器的响应是否超时;c)检测信息传输失败是否连续超过3次。经过我们的实践证明,该串行通信实现方案较好地保证了信息传输的可靠性,运行也非常稳定。
2 LED显示字符点阵数据的提取
一般来说,路桥收费管理系统中LED显示屏并不需要显示整个字模库中的字符,而只需显示某些特定的汉字和数字字符,如各种提示信息、收费金额、固定的问候语等。因此为了简化LED部分的电路规模、降低成本,我们只需提取所需的特定字符的点阵数据。
在我国的汉字字模库中,每一个字符,包括汉字、数字、英文字母等都是按照区位码的顺序存储的,因此提取所需的特定字符的点阵数据可以采用两种方法,一是首先从区位码表中查出需要显示的每一个字符的区位码,然后根据这些区位码采用文件定位的方式从汉字字模库中提取出点阵数据;另一种方法是对每一个显示字符,根据其ASCII码和区位码的关系首先获得该字符的区位码,然后根据区位码提取出点阵数据。相对而言第二种方法比较灵活方便 ,而且也节省了设计者的时间。
下面以16×16点阵汉字字模库为例,给出VB语言编写的获得特定字符点阵数据的具体程序。
End If
’以下将根据区位码采用文件定位的方式从文件1中获得该字符的数据信息,
’并将其写入文件2
以上介绍了PC机和LED显示屏的串行通信实现方案以及LED显示字符点阵数据的提取方法,其中本方案中提及的通信协议也可以应用于PC机和其他外设的串行通信,有效地保证数据传输的可靠性。当LED并不需要显示整个汉字字模库中的字符时,可以采用本文提供的点阵数据的提取方案,但是在某些情况下,若LED需要显示所有的国标一级汉字字符,则可以直接采用文件定位的方法从第1区开始提取(此时提取的点阵数据包含有英文字母和数字等非汉字字符),也可以从第16区开始提取数据(此时提取的全部是汉字数据)。在实际应用中,读者可以根据自己的需要对串行通信协议以及点阵数据的提取方法进行选择和修改。
参 考 文 献
1 Noel Jerke等.VisualBasic 6开发人员指南.北京:机械工业出版社,西蒙与舒斯特国际出版公司,19992 李华,孙晓民等.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,1999
评论
查看更多