便携式微型打印机在电子皮带秤中的应用
2011-02-20庞苏娟张根宝
庞苏娟, 张根宝
(陕西科技大学电气与信息工程学院, 陕西 西安 710021)
0 引 言
电子皮带秤是对散装物料进行连续称重计量的装置,具有动态测量和自动测量等优点,被广泛应用于定量包装和工业配料等场合.显示控制仪表是电子皮带秤中的核心部分,它实现了称重显示、参数输入、数据运算、自动控制等功能.此外,为完成报表和单据的打印,显示控制仪表还必须具备打印输出功能.
微型打印机是各种智能仪器、仪表和嵌入式设备的重要输出设备,它具有体积小、便于安装等优点,适用于像电子皮带秤这种打印任务比较固定的场合.但是,微型打印机在嵌入式设备应用的时候,需要为其设计通信接口,并编写相应的驱动程序.本文在设计了以DSP为控制器的电子皮带秤与微型打印机的硬件接口电路后,开发了UCOS-Ⅱ平台下的驱动程序.
1 系统构成
为了能够快速、准确地完成称重,并提供良好的人机界面,高速度、低功耗的DSP芯片已被应用在了电子皮带秤显示控制仪表的设计中.本文以TMS320LF240x系列DSP和JPM112系列微型打印机为例设计了二者的串行通信接口电路.
表1 DSP与打印机的连接方式
TMS320LF240x系列DSP是美国TI公司于1982年推出的一类低功耗、16位定点DSP.该系列DSP有一个可编程的半双工或全双工的串行通信接口,对应的引脚分别是SCIRXD引脚(SCI接收数据引脚)和SCITXD引脚(SCI发送数据引脚).TMS320LF240x系列DSP内部SCI串行口的输入、输出均为3.3 V的TTL电平,这种以TTL电平串行传输数据的方式抗干扰性差、传输距离短.为了提高串行通信的可靠性,增大串行通信的距离,一般都采用标准串行接口,如RS-232C、RS-485等.
JPM112打印机支持RS-232C等多种通信接口,并且该型打印机为串行通信提供了两种流控制方式:硬件流控制和软件流控制.本文采用软件流控制,软件流控制采用XON/XOFF方式,当采用软件流控制方式时,应按表1方式连接DSP与打印机.系统硬件组成见图1.
图1 系统硬件组成
图1中通过MAX232实现了TTL电平到EIA电平的转换,解决了DSP与微型打印机之间的电平不匹配问题,使两者之间的通信得以实现.
图2 基于RS-422A、RS-485的串行通信连接框图
但是RS-232进行数据传输有其局限性,它的最高传输速率为20 kbit/s,通信距离最长为15 m.为了克服这些缺点,提高串行通信的可靠性,增大串行通信的距离,可采用RS-422A、RS-485等标准来实现打印机与DSP之间的通信.RS-422A、RS-485的最大传输速率可达10 Mbit/s,最大传输距离为1 200 m.基于RS-422 A、RS-485的串行通信连接框图如图2所示.
RS-485与RS-232的转换电路如图3所示.DSP通过其串口与RS-485电平转换器的A、B口进行通信,将DSP的TTL电平转换为RS-485电平,再通过RS-232/RS-485转换器把RS-485信号转换成RS-232信号与微型打印机进行通信.
2 打印机与DSP的通信模式
JPM112打印机串行接口要求为:波特率从9 600 bps、19 200 bps、38 400 bps、57 600 bps、115 200 bps中选择;8位数据位;无校验位;1位停止位;5PIN MINI-USB插座(1号引脚为RXD,2号引脚为TXD,3号引脚为RTS,4号引脚保留,5号引脚为GND).
图3 RS-485与RS-232转换电路图
DSP的SCI异步通信格式可使用半双工或全双工通信.在任一种模式下,一个帧包括一个起始位、1~8个数据位、一个可选的奇偶校验位以及一个或两个停止位.如图4所示,每个数据占8个SCICLK周期.
接收器在接收到一个有效的起始位后便开始工作.一个有效的起始位由4个连续的内部SCICLK周期的零位来识别,如果任何一个位都不为0,则处理器重新启动并开始寻找另一个起始位.对于起始位后的位,处理器通过在其中间进行3次采样来判断其位值.采样点位于第4,5,6个SCICLK周期.位值的判定是基于多数原则的,如果3次采样有2次为某值,则判定为该值.
综合微型打印机和DSP的接口要求,选择串口通信的数据格式为8位数据位、无校验位、1位停止位,波特率为19 200 bps.
图4 SCI异步通信模式
3 驱动程序设计
由于系统比较复杂,需要同时实现电子皮带秤的显示、运算、打印等各项功能,并且还要保证皮带秤在控制和数据采集的实时性要求,因此在DSP上移植实时操作系统.使用操作系统保证了各种功能的实现,并且方便程序的编写、维护与扩展.本文以移植了UCOS-Ⅱ操作系统的DSP为平台,编写了微型打印机的驱动程序.
图5 打印驱动软件流程图
打印机资源是一个独占设备,因此要采取适当的办法保证同一时间只能有一个任务使用打印机.解决的办法就是使用信号量,使需要打印机的任务等待该信号量.信号量初始为0,进入打印驱动程序时,信号量加1;退出打印程序时,信号量减1.任务在调用打印驱动程序时要检测信号量是否为0,如果不为0则要等待.
由于使用了软件流控制,DSP需要检测自身SCIRXD的数据以判断打印机数据缓冲区是否满.开始打印时,DSP向打印机发送数据,同时监测串行口接收的数据,当接收到XOFF(0x13)时,停止向打印机发送数据;当接收到XON(0x11)时,重新开始发送数据;再次接收到XOFF时,再停止向打印机发送数据;等待再次接收XON(0x11)时,再重新开始发送数据.如此循环,直到发送完打印数据.根据前面的分析,可以得到打印驱动程序的软件流程图如图5所示.
4 结束语
本文以TMS320LF240x系列DSP和JPM112系列微型打印机为例设计了二者的串行通信接口电路,并以移植了UCOS-Ⅱ操作系统的DSP为平台,编写了微型打印机的驱动程序.所设计的接口系统除了应用在电子皮带秤系统中打印称重结果,还可以经简单修改移植到其他以DSP作为微处理器需要进行结构打印的系统中.
参考文献
[1] 方原柏.电子皮带秤二次仪表的发展[J].衡器,2004,33(4):1-4.
[2] 张毅刚,赵光权,孙 宁,等.TMS320LF240x系列DSP原理、开发与应用[M].哈尔滨:哈尔滨工业大学出版社,2006.
[3] 朱清慧,张凤蕊,翟天嵩,等.Proteus教程—电子线路设计、制版与仿真[M].北京:清华大学出版社,2008.
[4] 张 琴,向先波.TMS320F240x与PC机串行通信接口设计及应用[J].今日电子,2004,11:55-57.
[5] JPM112便携针式微型打印机开发手册[R].上海济强电子科技有限公司,2008.
[6] 任 哲.嵌入式实时操作系统UCOS-Ⅱ原理及应用[M].北京:北京航天航空大学出版社,2009.