论文部分内容阅读
伴随着计算机技术的飞速发展,人们希望客户终端设备变得更加智能化、数字化、轻巧便利和具有特定的功能,嵌入式技术提供了一种灵活、高效的解决方案。中华人民共和国于2003年6月通过了《身份证法》,开始推行第二代居民身份证。第二代居民身份证基于射频卡技术,内部存储公民的身份信息,可以通过读卡器读取。传统的身份证复印系统是通过扫描打印的方式,由于可以机读二代证信息,二代证复印可以通过机读打印的方式。本文研究和实现了一种基于嵌入式Linux的身份证复印系统。本系统兼具一代证和二代证复印的功能,一代证基于扫描加打印的方式,二代证基于读卡加打印的方式。本文有两个创新点:一是在嵌入式设备中合成图像的方法,即将二代证读卡器读到的身份信息合成身份证图像,此方法已申请发明专利;二是黑白热敏打印机打印灰度图像的方法,利用黑点疏密表示灰度的原理,采用抖动法将灰度图像处理成黑白二值图像。首先论证系统的硬件方案。经过对当前CPU技术的对比和研究,CPU选择基于ARM9架构的三星S3C2440处理器。分析当前的扫描仪与打印机技术,为了满足本系统便携的要求,选择矽感科技的A6彩色便携扫描仪Docket Port667、日本精工科技的热敏打印机头CPAD347。二代证读卡器选择中华人民共和国公安部授权的神思电子的二代身份证验证机具SS628。然后研究移植嵌入式Linux系统到ARM设备。包括构建Linux开发环境,配置ARM交叉编译工具链。移植嵌入式Linux系统包括移植bootloader、移植内核和构建根文件系统。针对Linux内核在ARM处理器S3C2440上的移植,官方内核版本中有完善的移植版本,根据系统平台的需要进行相应的配置修改。设计硬件设备的驱动程序。扫描仪与主机的通讯接口采用USB接口,基于开源的USB API库libusb实现扫描仪驱动程序。打印机和读卡器与主机的通讯接口是串口,串口驱动程序内核已经移植好,在用户层设计串口应用程序来驱动串口设备。基于开源的嵌入式图形库Qt设计GUI应用程序。Qt是一个跨平台的C++应用程序开发框架,广泛应用于GUI程序设计。系统有两种工作模式,一代证模式下采用扫描加打印的方式实现身份证复印,二代证模式下采用读卡然后合成图像并打印的方式。GUI程序中有相应的模式切换按钮和图像预览窗口等。在二代证模式中,合成图像的方法采用我们已申请专利的一种嵌入式图像合成法。基于Qt的图形库,设计将读卡器读到的身份证信息合成身份证图像程序。热敏打印机只能打印黑白二值图像,在将灰度图像送至打印前需要进行相应的处理。利用黑点疏密表示灰度的原理,采用Floyd-Steinberg算法将灰度图像处理成黑白二值图像。