基于S3C2440处理器的打印模块的设计
叶小岭,杨旭
南京信息工程大学信息与控制学院,江苏南京210044)
摘 要:针对打印机的扩展功能要求,为了提高打印机的应用范围,基于ARM9内核的处理器和嵌入式Linux操作系统,设计硬件电路、搭建软件开发环境,建立一个嵌入式系统的开发平台,设计了打印模块。该打印模块基于S3C处理器,采用扩展的USB接口与上位机通信,RS-232串口与打印机连接,通过触摸屏控制系统采集数据并送串口交打印机打印。在此基础上,以VIVIPOl PLUS便携式热敏打印机为对象,对工业控制领域中的某些参数进行了坐标图形打印仿真,打印效果理想。
关键词:S3C2440;LSB接口;RS-232;打印机;触摸屏
中图分类号:TP 27 文献标识码:A
1、引言
目前打印机的应用不断扩大,市场出现了各种类型的打印机,包括传统的针式打印机,用得最普遍的喷墨打印机,也有打印速度快、噪音低的热敏打印机。传统的打印机通常是通过电脑获得打印信息,用电脑控制打印机的打印。即使打印机运用于一些嵌入式系统中,其打印功能的扩展也比较复杂。本文就将嵌入式技术与打印机相结合研究了一种基于S3 C2440处理器的便携式打印模块。通过该模块的USB接口可以采集各种带USB接口存储设备的打印数据,同时通过打印模块的触摸屏控制打印机的打印。
2 系统整体设计概述
本嵌入式打印模块主要由处理器单元、电源电路、时钟复位电路、JTAC接口电路、存储单元、串行接口电路、触摸屏和USB通信接口电路组成。
系统采用三星的32位RISC嵌入式处理器S3 C2440作为主控制器。系统的电源和时钟电路为系统提供所需要的电源和时钟信号。处理器通过LSB接口与上位机通信,采集上位机需要打印的信息,经过处理器处理送打印机打印。系统主要通过触摸屏控制打印数据的采集、处理和打印。打印模块通过系统扩展的RS-232串行通信接口与打印机相连接。系统的整体结构图,如图l所示。
3系统硬件电路设计
系统主要是从计算机、各种带USB的存储设备获得打印信息,通过触摸屏控制打印信息的采集、处理和打印。本文主要对系统的USB接口电路、触摸屏电路和串行接口电路作详细叙述。
1) USB接口模块 本打印模块的设计采用USB接口采集打印信息,这样设计的打印模块可以很好地与目前市场上的存储设备连接,适应了市场的需求,也提高了整个打印机数据采集和数据打印的速度。系统所采用的S3 C2440A芯片内部集成了USB控制器,所以无需外接USB控制芯片,这简化了系统的接口电路,也降低了成本。系统只需要将ARM处理器直接与USB接口相连即可。由于电路简单,本文对USB接口电路不再详述。
2)串行接口模块本打印模块主要通过扩展RS-232串口实现与带有RS-232串口的打印机连接。打印模块选用MAX3232芯片作为系统RS-232接口的收发器,工作电压为3.O~5.5 V。该芯片功耗低、传输速率可达到l Mbps,并采用18 pin的TSSOP封装。MAX3232芯片的ITL/CMOS输入输出信号与ARM的UART输入/输出口对接。每个UART包含一个波特率产生器、发送器、接收器和控制单元。波特率发生器以MCLK作为时钟源;发送器和接收器色含16字节的FIFOS和移位寄存器。要被发送的数据,首先被写入FIFO,然后拷贝到发送移位寄存器,接着从数据输出端口依次移位输出。系统的串口电路原理图,如图2所示。
本文只扩展了一个串日,可以根据系统的具体应用扩展多个串口。
3)触摸屏模块本系统采用TI公司生产的四线电阻式触摸屏ADS7843。该触摸屏电压范围为2.7—5 V,具有****125 kHz的转换速度,I2位或8位采样精度,一个同步串行接口,2个附加的A/D通道。系统采用S3 C2440的同步串行接口(SPI)与触摸屏连接,使用ARM处理器的外部中断作为笔中断,当触摸屏被按下时输出低电平。S3 C2440的I/O口可配置成内部上拉电阻,这样ADS7843的11引脚不需要额外的上拉电阻。处理器只需要通过同步串口发送控制字,即可得到相应通道的采样结果。其接口原理图,如图3所示。
4系统软件设计
较件系统的设计主要包括交叉编译环境的建立、BootLoader的移植、Linux操作系统的移植、基于Linux的模块驱动设计以及相关的应用程序设计。本文主要介绍了USB驱动程序的设计、RS-232串口连接打印机的驱动程序设计以及触摸屏控制打印数据采集和打印输出的程序流程。系统上电复位后,通过引导加载程序进行硬件的初始化,并把内核从Flash复制到SDRAM中,同时把控制权交给内核,加载运行内核,运行应用程序。
1) USB驱动设计 本系统采用ARM9S3 C2440处理器,该处理器内部集成了USB主机控制器,因此可以直接引出USB主控制端口,而无需外接USB主控芯片。1995年底公司推出了USBOHCI标准。系统只需要具有USB OHCI标准的驱动程序,按照OHCI标准的主机控制器就可以在系统上得以应用。USB设备驱动程序的设计主要包括主机端设备驱动程序设计、主机控制器驱动程序设计和设备端驱动程序设计3部分。
本文重点阐述主机驱动。USB Host驱动程序主要包括USB接口的初始化函数,驱动的注册函数和驱动的移除函数,其程序如下:
s3 c2440_ohci_configure函数主要负责S3 C2440处理器上USB接口的初始化以及配置USB接口的锁频环和接口状态。驱动程序的核心是ohci函数,它向系统注册一个OHCI标准的USB设备。在该函数中irq是USB主控设备的中断号;OHCI寄存器组的基地址是内核可以访问的虚拟她址;flags表示一些特殊的OHCI控制器,通常可以给ohci是返回OHCI设备结构的指针;name是OHCI设备名。驱动程序最后调用s3 c2440_ohci_exit函数移除驱动程序,释放资源。
2)打印机驱动设计本系统通过扩展RS-232接口实现与打印机通信,因此可将打印机看作是一个外部异步串口接收设备。打印机驱动程序包括初始化打印机、向串口写入打印数据、关闭串口。
①初始化打印机在初始化函数中首先要注册打印机,为设备获得系统分配的主设备号、自定义的次设备号,建立起与文件系统的关联。完成注册后调用OPEN函数打开串口,完成打印机初始化。主要包括选择端口并设置端口状态,确定串口的波特率和校验方式。
②发送打印数据在完成打印机初始化后,首先要发送打印控制指令,然后调用发送数据函数,将要发送的数据从用户空间调入到内核空间,并监视UTRSTAT寄存器,判断数据是否发送完成。
③卸载设备驱动,释放资源 调用rmmod指令卸载模块的时候,程序的入口点是cleanup_mod-ule函数,在该函数中完成了设备的注销和系统资源的释放,字符型设备调用
3)触摸屏驱动程序工作流程触摸屏驱动程序通过触摸笔按下产生中断,开启定时器,其程序需要传递3个数据:x坐标、y坐标和笔动作(按下、抬起、拖拽)。因为有拖拽的动作,所以当触摸屏被按下时,使用定时器跟踪用户的移动动作,触摸屏驱动将不停地发出拖拽事件,直到用户抬起触摸笔。流程图,如图4所示。
5仿真实验
工程中往往有这样的需要,某些系统参数变化情况需要被严格监督,每隔一段时间对系统参数的值采样一次,为了直观清楚地反映这些值的变化情况,可以使用本次设计的打印模块来把这样的参数变化情况打印出来。
本次打印任务采用VMP01 PLUS便携式热敏打印机,在应用程序中通过打印机的通讯接口向打印机发送控制指令和打印数据以控制打印机打印。本次打印用到的主要指令为cs,即曲线打印指令,用来打印水平行上n条线段,具体如图5:
每条曲线都是由很多水平线段(点可视为长度为1的线段)组成。本指令为打印水平行上n个线段,连续使用该指令可以打印出用户所需要的线段。
参数说明如下:
n为线段数量;xksl为第条线段起始点横向坐标的低位;xks日为第k条线段起始点横向坐标的高位;xkeL为第k条线段结束点横向坐标的低位;脑的转换。这不仅提高了打印机的便携性,也提高打印机的运用场合。该系统可以应用于工业控制领域,将实时获得的参数以坐标点的形式打印出来,反映给工作人员,使其能够及时、准确、直观地了解一些参数的值以及变化情况,比如环境的温度,湿度等,仿真结果表明打印效果理想。xkeH为第最条线段结束点横向坐标的高位。坐标从打印区域最左侧开始计算,最小值为o,****值为383,当打印一个点时,xkeL=xksL,xkeH=xksH。
6 结 语
本文主要提出了一种基于s3 C2440处理器的打 印模块的设计。当普通的打印机安装上这种简单的 崴入式打印模块后,可以方便地从u盘,移动硬盘 等便携式存储设备中采集打印数据,而无需通过电脑的转换,这不仅提法哦了打印机的便携性,也提高了打印机的运用场合。该系统可以应用于工业控制领域,将实时获得的参数以坐标点的形式打印出来,反映给工作人员,使其能够及时、准确直观地了解一些阐述的值,以及变化情况,比如环境的温度,湿度等,仿真结果表明打印效果理想。
|