嵌入式Linu下IC卡接口设计与驱动开发.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式Linu下IC卡接口设计与驱动开发

嵌入式Linux下IC卡接口设计与驱动开发 来源:无忧电子开发网 / 作者:由守明 张侃 谕朱吴 薛俊2006-05-09 点击:458 ?????? 引? 言 ?????? 随着现代工业社会逐步向信息社会的过渡,信息将扮演愈来愈重要的角色,成为现代经济生活中的成功要素。IC卡作为卡基应用系统中的一种卡型,是利用安装在卡中的集成电路(IC)来记录和传递信息的;具有存储量大、数据必威体育官网网址性好、抗干扰能力强、存储可靠、读写设备简单、操作速度快、脱机工作能力强等优点,其应用范围极为广泛。 ?????? 我们基于公用电话IC卡的应用,开发了多媒体信息终端产品,在传统公用IC卡电话功能的基础上增加了上网、邮件、电子支付、信息浏览等各种多媒体功能,统一采用公用电话IC卡进行收费。目前设计的IC卡读写器和驱动软件已经应用于我们的多媒体终端产品中。 ?????? 1? 嵌入式Linux下设备驱动模块简介 ?????? Linux系统将设备分成三种类型:字符设备、块设备和网络接口。三种类型设备定义如下:??? ?????? 字符设备:字符设备是指能够像字节流(比如文件)一样被访问的设备,如字符终端(/dev/con s01e)和串口(/dev/ttys0)以及类似设备。字符设备对应文件系统中的节点,用户则通过此文件节点访问和控制设备。??? ?????? 块设备:块设备和字符设备一样可以通过文件系统节点来进行访问,Linux允许应用程序像字符设备那样读写块设备。??? ?????? 网络接口:任何网络设备都要经过一个网络接口,即一个能够和其它主机交换数据的设备。通常接口是个硬件设备,但也可能是个纯软件设备,比如回环(100pback)接口。Linux访问网络接口的方法是分配一个唯一的名字。??? ?????? Module是Linux内核的一大创新,其正规的叫法应该是Loadable Kernel Module,? 即可安装模块。可安装模块实现了Linux操作系统的可扩展性。模块运行在内核空间环境中,它的程序运行函数库都是在内核空间定义,而不是在用户函数库空间。Linux模块的最方便之处为可加载和卸载。Linux操作系统提供了系统调用in smod和rmmod可随时将自己开发的模块进行加载和卸载。??? ?????? 根据Linux设备分类,设备驱动模块也可大致分为字符模块(char module)、块模块(block module)和网络模块(network module)三种。 ?????? 2? IC卡设备触点硬件电路介绍 ?????? IC卡硬件触点接口及信号如下所示。 ?????? 以上触点中,VPP编程电压触点是厂家生产卡时编程所用,用户卡读写时没有应用。所以准确地说,只有五个触点分别连接来自外部主控制器的五个控制信号。? 设备复位后的后续操作可包括卡的地址设定操作、读写操作、擦除操作。针对以上卡的各种操作皆有严格的信号控制时序,详情可参照各种应用卡的DATASHEET。? IC卡作为卡基应用系统中的一种卡型,是利用安装在卡中的集成电路(IC)来记录和传递信息的,所以IC卡皆有特定的存储位图。具体存储位图针对应用领域的不同和标准的不同具有不同的位图定义,详细情况请参见自己开发应用卡的DATASHEET资料。在驱动的开发过程中,也只有完全清楚这些位图定义后才能将所读取的数据按照位图定义协议进行译码而得到自己最终需要的各种数据。 ?????? 3? IC卡读卡电路简介 ?????? 我们采用MPC823E作为主处理器。因为IC触点工作电压为5V,而主控制器的工作电压为3.3V,所以在读卡器中设计了中间电平转化驱动电路,同时增加了控制信号的驱动能力。为了实时检测插卡操作,在插卡器电路中设置一开关电路,接主控制器的控制口线,用于检测是否插卡。 ?????? 4? IC卡设备驱动模块的实现详解 ?????? 下面以我们采用的公用电话机通用的IC卡为例,通过已实现代码来说明整个IC卡设备驱动模块。 ?????? (1)数据结构的确定 ?????? 编辑头文件ICDATA.H,确定在驱动模块程序中应用的公用数据结构。驱动模块的最终目的是读取和写入卡数据处理,所以规范整齐的数据结构是必须的。可以定义一个数据结构体来实现卡数据的存储区域、数据地址索引、控制标志位等,如: ?????? 这样在驱动模块中,只需要struct ICDATA iccdata;一条语句便可定义全部的卡处理数据结构定义;而ic_fops则定义了设备操作映射函数结构。从这个数据结构看,我们实现了IC卡设备的打开、读、写和监控函数。 (2)硬件接口控制线控制子函数 ?????? 这些函数用作进行卡复位、时钟等信

文档评论(0)

nbc152 + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档