📄 收费系统中pc机与led显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.htm
字号:
<TD align=middle bgColor=#f1f0ed height=64>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0
height=60 width=167
classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="movie" VALUE="/image/GO2IC-logo.swf"><PARAM NAME="quality" VALUE="high">
<embed src="/image/GO2IC-logo.swf"
quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="167"
height="60"></embed></OBJECT></TD></TR>
<TR>
<TD align=middle bgColor=#f1f0ed height=80>
<TABLE cellSpacing=0 cellPadding=0 width=190 border=0>
<TBODY>
<TR>
<TD align=middle height=24><A
href="http://www.chinaecnet.com/ads/adsindex.asp"
target=_blank><FONT
color=#0000ff><B>免费提供资料及报价</B></FONT></A></TD></TR><!--
<tr>
<td colspan="5" bgcolor="ffc85f" height="64" align="center"><a href="http://www.chinaecnet.com/ads/wl-0308.asp" target="_blank"><img src="http://www.chinaecnet.com/ads/image/wl-logo1.gif" width="167" height="66" border="0"></a></td>
</tr>
<tr>
<td colspan="5" bgcolor="ffc85f" height="18" align="center"><a href="http://www.chinaecnet.com/ads/wl-0308.asp" target="_blank">超小型微波放大器</a></td>
</tr>
--><!--
<tr>
<td colspan="5" bgcolor="ffc85f" height="64" align="center"><a href="http://www.chinaecnet.com/ads/dzqc.asp" target="_blank"><img src="http://www.chinaecnet.com/ads/image/dzqc.gif" width="167" height="60" border="0"></a></td>
</tr>
<tr>
<td colspan="5" bgcolor="ffc85f" height="18" align="center"><a href="http://www.chinaecnet.com/ads/dzqc.asp" target="_blank">话机电路解决方案
</a> </td>
</tr>-->
<TR>
<TD align=middle height=70><A
href="http://www.chinaecnet.com/ads/icbase.asp"
target=_blank><IMG height=60
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/icbase-logo.gif"
width=167 border=0></A></TD></TR>
<TR>
<TD align=middle height=70><A
href="http://www.chinaecnet.com/ads/wdj.asp"
target=_blank><IMG height=60
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/wdj.gif"
width=167 border=0></A></TD></TR>
<TR>
<TD align=middle height=70><A
href="http://www.chinaecnet.com/ads/Maruwa_0508.asp"
target=_blank><IMG height=60
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/maruwa-logo.gif"
width=167 border=0></A></TD></TR>
<TR>
<TD align=right height=24><A
href="http://www.chinaecnet.com/ads/adsindex.asp"
target=_blank>更多厂商>></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD vAlign=top align=right width=560>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD align=middle height=70>
<SCRIPT language=javascript>
var dran=Math.floor(Math.random()*1000000)
document.write("<a target=\"_blank\" href=\"http://ad.cn.doubleclick.net/jump/news.chinaecnet.com/news_middle_top_2;sz=468x60;ord="+dran+"?\"><img src=\"http://ad.cn.doubleclick.net/ad/news.chinaecnet.com/news_middle_top_2;sz=468x60;ord="+dran+"?\" width=\"468\" height=\"60\" border=0></a>");
</SCRIPT>
</TD></TR>
<TR>
<TD class=l16 height=40>
<DIV align=center>
<P>收费系统中PC机与LED显示屏的串行通信</P></DIV></TD></TR>
<TR class=l12>
<TD height=40>
<DIV align=center>郭欣 王长清 顾红 刘国岁
<P>南京理工大学电子工程技术研究中心 (南京210094)</P></DIV></TD></TR>
<TR class=l12>
<TD>
<P>近年来路桥收费管理系统不断地向自动化、智能化的方向发展,它除了要完成基本的收费功能外,还需要对一些外部设备进行管理。这些外部设备是收费站与车辆司乘人员最直接的交流窗口,它不仅要控制车辆的放行和禁止,而且还要能够给出有关车辆的车型、收费金额等提示信息。这些信息的给出是由信号灯、LED显示屏、数码管显示器、语音报价器等外设来完成的。</P>
<P>在我们所设计的路桥收费管理系统中,道口工作站对这些外部设备的控制是通过两者之间的串行通信实现的。下面我们仅以LED显示屏为例,介绍工作站与外设的串行通信实现方案以及LED显示字符点阵数据的提取方法。
1道口工作站与LED显示屏的串行通信</P>
<P>为了实现道口工作站和LED显示屏的串行通信,我们首先在两者之间定义了一个通信协议
。在本协议中主控器即道口工作站的PC机程序由VB语言编写,被控器单片机程序由C51语言编写。该串行通信是在PC机的RS-232串行口和MCS-51系列单片机的UART串行口之间进行的。下面首先给出通信协议的定义。</P>
<P>1.1通信协议</P>
<P>(1)通信常量的定义</P>
<P>通信常量的定义见表1。<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=170
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_1.jpg"
width=466></DIV></TD></TR></TBODY></TABLE>
<P>当主控器或被控器发送命令时,对前几个需要发送的字节作异或处理得到BCC校验码
,并将该校验码作为最后一个字节发送。接收命令时,接收方对收到的所有字节进行异或处理,若为零,则表示数据传输无误,否则进行出错处理。 <BR><BR>(2)主控器写命令执行方式
<BR>主:<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=422
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_2.jpg"
width=400></DIV></TD></TR></TBODY></TABLE>
<P>(若末收到被控器发出的ACK或收到的BCC校验出错,该命令重发一次,共允许重发三次) <BR></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=331
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_3.jpg"
width=400></DIV></TD></TR></TBODY></TABLE>
<P>(若收到被控器发出的NAC或接收的BCC校验出错,该命令重发一次,共允许重发三次) <BR></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=283
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_4.jpg"
width=361></DIV></TD></TR></TBODY></TABLE>
<P>(4)错误定义</P>
<P>信息传输失败:主控器发出一条信息后收到被控器的错误应答(包括校验出错),计为一次传输失败。</P>
<P>超时:主控器发出一条信息后,过0.5s被控器无回音;被控器发出一条信息后,过0.1s主控器无回音。
超数:一条信息传输失败,重试三次仍失败。<BR><BR>(5)错误处理</P>
<P>当主控器收到被控器的错误应答(包括校验出错)时,在不超数的情况下,主控器将重新发送命令。若被控器超时一次,计为信息传输失败一次。若被控器超数,则丢失本次传输所有数据,回到正常工作状态。</P>
<P>1.2 通信程序的编写</P>
<P>根据通信协议,我们使用VB语言在主控器PC机的通信窗体中共编写了三个函数:通信的初始设置函数、主控器写命令函数、主控器读命令函数。其中初始设置函数主要完成串口的打开与关闭、通信端口号的设置以及波特率、校验方式、数据位、停止位的设置等。主控器写命令函数主要完成工作站的PC机向LED显示屏发送各种需要显示的问候语以及收费金额、余额等信息。主控器读命令函数主要用于读取LED显示屏的状态信息。</P>
<P>在该通信窗体中,我们使用了一个Active
X控件Mscomm,该控件通过串行端口发送和接收数据,下面是有关该控件的一些属性说明。<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=398
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_5.jpg"
width=370></DIV></TD></TR></TBODY></TABLE>
<P>图1给出了主控器写命令函数的程序流程图。由图1可知,在整个通信过程中,我们在主控器PC机的程序里设置了三个出错检测点:a)检测被控器·发出的ACK信号以及BCC校验是否正确;b)检测被控器的响应是否超时;c)检测信息传输失败是否连续超过3次。经过我们的实践证明,该串行通信实现方案较好地保证了信息传输的可靠性,运行也非常稳定。
</P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=560
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_6.jpg"
width=443></DIV></TD></TR></TBODY></TABLE>
<P>2 LED显示字符点阵数据的提取</P>
<P>一般来说,路桥收费管理系统中LED显示屏并不需要显示整个字模库中的字符,而只需显示某些特定的汉字和数字字符,如各种提示信息、收费金额、固定的问候语等。因此为了简化LED部分的电路规模、降低成本,我们只需提取所需的特定字符的点阵数据。</P>
<P>在我国的汉字字模库中,每一个字符,包括汉字、数字、英文字母等都是按照区位码的顺序存储的,因此提取所需的特定字符的点阵数据可以采用两种方法,一是首先从区位码表中查出需要显示的每一个字符的区位码,然后根据这些区位码采用文件定位的方式从汉字字模库中提取出点阵数据;另一种方法是对每一个显示字符,根据其ASCII码和区位码的关系首先获得该字符的区位码,然后根据区位码提取出点阵数据。相对而言第二种方法比较灵活方便
,而且也节省了设计者的时间。</P>
<P>下面以16×16点阵汉字字模库为例,给出VB语言编写的获得特定字符点阵数据的具体程序<BR></P>
<TABLE cellSpacing=0 cellPadding=0 width=550 border=0>
<TBODY>
<TR>
<TD>
<DIV align=center><IMG height=437
src="收费系统中PC机与LED显示屏的串行通信,串行通信,通信协议, 点阵数据提取-中电网.files/xsj061253_7.jpg"
width=409></DIV></TD></TR></TBODY></TABLE>
<P>以上介绍了PC机和LED显示屏的串行通信实现方案以及LED显示字符点阵数据的提取方法,其中本方案中提及的通信协议也可以应用于PC机和其他外设的串行通信,有效地保证数据传输的可靠性。当LED并不需要显示整个汉字字模库中的字符时,可以采用本文提供的点阵数据的提取方案,但是在某些情况下,若LED需要显示所有的国标一级汉字字符,则可以直接采用文件定位的方法从第1区开始提取(此时提取的点阵数据包含有英文字母和数字等非汉字字符),也可以从第16区开始提取数据(此时提取的全部是汉字数据)。在实际应用中,读者可以根据自己的需要对串行通信协议以及点阵数据的提取方法进行选择和修改。
</P></TD></TR>
<TR>
<TD> </TD></TR>
<TR>
<TD>
<DIV
align=center>本文摘自《电子工程师》</DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD bgColor=#cccccc height=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="24%" height=20> </TD>
<TD width="76%"> </TD></TR>
<TR>
<TD align=middle width="24%"> </TD>
<TD width="76%">
<TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
<TBODY>
<TR>
<TD align=middle><A
href="http://www.chinaecnet.com/about/gywm.asp"
target=_blank>关于我们 </A>|<A
href="http://www.chinaecnet.com/about/wzdh.asp" target=_blank>
网站导航</A> | <A href="http://www.chinaecnet.com/about/ggzs.asp"
target=_blank>广告招商 </A>| <A
href="http://www.chinaecnet.com/about/lxff.asp"
target=_blank>联系方法</A> | <A
href="http://www.chinaecnet.com/about/zpxx.asp"
target=_blank>招聘信息</A> | <A
href="http://www.chinaecnet.com/about/zjlt.asp"
target=_blank>专家约稿</A><BR><BR><A
href="http://www.chinaecnet.com/icp.asp"
target=_blank>许可证号:粤<FONT class=eng>ICP</FONT>证<FONT
class=eng>010067</FONT></A><BR><FONT class=eng>Copyright ©
2000-2006 ChinaECNet All Rights
Reserved</FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=eng height=34>
<DIV align=center><B>Tel: 010-82888222, 0755-83243191</B><BR><B>Fax:
010-82888220, 0755-83243291</B></DIV></TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -