BC7281应用文章——BC7281A串行通讯的解决方案


作者:科院上海技术物理研究所  陈木旺 陈育伟 童子磊

  传统的数码管显小和键盘接口一般直接采用MCU的工/0口对键盘或数码管进行动态扫描的方法,硬件上需要较多的外围部件,目 ‘占用MCU大量工//0口, 软件上则浪费CPU资源,目‘给编程人员带来很大的不便。数码管显小及键盘接口专用控制芯片以其实现方法简中、功能强大等显 著特点得到)‘一泛的应用。这 种芯片外围部件少、与MCU通讯一般采用串行接口或总线、在硬件上和软件上都占用极少资源、目‘功能强大、使得编程人员可以 将更多的时间花在控制上。目前 的这类接口芯片主要有:BC728X, HD7279A, ZLG7290, CH451等,BC7281A是其中性价比较高的一种。
    Bc7281A的典型应用电路如图1所小,显示位数为16位,连接的键盘个数为64个,其外接移位寄存器采用 74HC164,控制MCU采用ATMEL公 司的AT89C51
img01
为简化起见,图中仅画出与Bc7281a相关的电路。
在使用过程中,只要根据需要调用SEND或RECEIVE子程序即可。但在某些情祝下可能引起严重的问题,需要特别注意:
    *通讯时间过长会影响显示
    在数据传送期间,BC7281A将不会进行显>}:和键盘扫描,囚此虽然数据传送的速度并没有下限的限制,但如果数据 的传送时间大于扫描周期(最小 为8mS),将会对显小造成影响。
一般情祝下,通讯周期是很短的,用Insight ME-52H仿真器测试MCU与BC7281A中个字节的通讯周期,时钟由仿真器内部提供,为12MHz,测得SEND平均 的通讯周期在170uS左右, RECEIVE的为160uS左右,远远小于扫描周期,不会影响显小。但在有中断的情祝下,就可能间接延长通讯周期了,因为 中断是随机的,MCU就有可能 在通讯期间响应中断,则此时的传送时间还应包括中断响应的时间,如果中断处理时间较长,就可能影响显小了。
*通讯协议被破坏导致数据传送错误
    由于MCU与Bc7281a的通讯是采用2根半双工的串行总线,传送数据时要求以字节为中位进行传送,即传送一个字节后才能 传送下一个字节,否则会引起传 送数据错误。
如果调用这些通讯子程序的指令分布在}程序和中断服务程序里,就可能出现以下情况:主程序正在执行某条通讯指令期间,响应中 断服务程序里的另一条通讯指 令,此时通讯协议将出错,导致数据传送错误。特别是会出现在以下情况:程序完成显小功能,键盘采用中断方式,这时若在中断服 务程序出现读取键值的指令,将 会引起数据传输出错。因此要求所有调用通讯指令均在主程序或中断服务程序。
从上面的分析可以看出,这些问题}要是由中断引起的,可以采用在软件上调整程序结构,硬件上进一步完善等方法加以解决,具体 如下:
    调整程序结构
    ¥禁门在通讯期间内响应,I断禁门在通讯期间内响应中断,就是在每次调用通讯子程序前关闭所有的中断,调用完毕后再开放中 断,这样传递时间就不会增加,也 不会出现在同一个通讯周期里分时传送两个数据的情况。该方法虽然简中,但有一定的局限性,对于有些实时性要求很高的场合,或 者利用中断实现精确延时等场合 就不适用了。
¥采用中断配合查询标志位:该方法中,对于实时性要求高或执行时间较短的中断则直接在相应的中断服务程序中完成,其他的中断 则采用中断配合查询标志位的方 法处理,即仅在中断服务程序里设置中断标志位,
在}程序里查询该标志位的状态,若有中断发生则进行相应的处理,这样就可以将原来中断服务程序中的处理部分转移至程序了,也 就不会出现通讯子程序的指令分 布在程序和中断服务程序的情祝了,也就避免了在一个通讯期间内分时传送两个数据,同时也有效的减少了中断时间。另外,尽量减 少通讯的频率,如在显小的数据 不变化时不更新Bc7281a中相应的显示寄存器,这样就可以减少在通讯期间响应中断的可能性了,也提高了CPU的利用率, 可以作为该方法的有效补充。
  Bc7a81A价格低廉,功能强大,外围电路少,软件控制简中,使用方便;但在应用时会出现数据传送错误等问题,可以使用多 种软硬件方法解决。在机载多通 道扫描仪(MAMS)黑体定标源系统中采用了本文提出的调整程序结构的解决方法,该系统于口目前进行航空试验,试验结果表 明,系统在较恶劣的电磁环境中仍 能可靠运行,效果令人满意。



 

***敬请使用firefox或chrome浏览器以取得最佳效果***
Copyrigh1999-2011 北京凌志比高科技有限公司 版权所有
电话:(010) 62981567,82895285,82895286,13391571388 传真:82895286
地址:北京市海淀区上地信息路一号国际创业园 1号楼402室(100085)