摘要:嵌入式系统在网络控制和通信领域有着越来越广泛的应用。本文通过分析PC卡时序,利用ARM处理器S3C4510B和外部电路设计PCMCIA接口,实现与无线网卡的软、硬件接口,从而可以使用基于ARM的嵌入式系统来开发无线网络产品。 关键词:S3C4510B PCMCIA接口 PC卡
引言 ARM处理器具有小体积、低功耗、低成本、高性能的特点,基于ARM的嵌入式系统可广泛的应用于无线领域。本文采用北京微芯力公司的ARM Linux评估板做为嵌入式硬件平台,处理器为三星公司的S3C4510B,操作系统为uCLinux,使用S3C4510B和外围电路模拟PC卡时序,完成PCMCIA接口的设计,解决该硬件平台与无线网卡的软、硬件接口问题,使其成为开发无线网络设备的理想平台。 1. PCMCIA接口电路分析 PCMCIA是个人计算机存储卡国际协会的简称,由于PC卡具有重量轻、方便灵活的性质,所以在生活中应用广泛,同时也是嵌入式平台下开发无线网络很好的产品。 PCMCIA接口信号定义有3种模式:存储器模式(Memory Mode)、输入/输出模式(I/O Mode)、卡总线模式(CardBus Mode),每种模式下的接口信号定义都有所不同。PCMCIA无线网卡是Type II 类型的卡,接口信号定义属于I/O模式,详细的68针脚定义可参考PC卡规范。图1给出了PCMCIA的体系结构:
 图1 PCMCIA体系结构
PC卡接口主要实现两种功能:一是与S3C4510B上的扩展总线相连。二是对无线网卡内部的操作,包括对缓冲RAM的读写、MAC芯片的控制、读写存储空间及I/O空间等。根据PC卡规范的说明,除去68针脚中固定的连接方式针,表1列出了PCMCIA接口电路必须使用的总线信号(不考虑电源线和地线),并且对主要信号的工作方式做出说明。
表1 PCMCIA接口使用的总线信号

(1) 从网卡上传送的数据格式为大端格式,即字数据的高字节存储在低位地址,低字节存储高地址,而S3C4510B通常工作在小端格式,所以D0~D7接S3C4510B的高八位数据线,D8~D15接低八位数据线。 (2) 网卡中包括I/O空间和存储空间,其中存储空间分为两部分:属性存储空间(Attribute Memory)和公共存储空间(Common Memory)。当REG信号有效时,表示存取限于属性和I/O空间;无效时,表示存取公共空间的数据。在设计中只需要PC卡提供的低22根地址线A0~A21,高四位接地即可。 (3) 卡使能信号CE1,CE2,低有效。CE1表示对PC卡偶数地址字节访问,CE2表示对奇数地址字节的访问。S3C4510B对网卡采用半字(16bit)访问方式,故在对网卡读写时,CE1,2应始终保持低电平。 (4) I/O端口读写控制信号应由S3C4510B的输入输出使能信号与外电路组合逻辑产生。如果考虑DMA操作,则要将PC卡INPACK引脚作为DMA请求信号(DREQ),REG作为DMA应答信号,具体DMA操作时序请参考PC卡规范。 通过对PC卡接口信号线的详细分析,可以得出PCMCIA与S3C4510B相连所需要的信号线,从而可以确定S3C4510B提供的控制信号和外围电路。
2. S3C4510B与PC卡接口硬件电路 S3C4510B是三星公司推出的针对嵌入式网络控制和通信领域应用的16/32位嵌入式处理器,CPU内核为国际上广泛使用的ARM7TDMI处理器。本文所设计的就是用该ARM处理器实现与PCMCIA无线网卡的软、硬件接口,从而展开对基于ARM平台的无线网络的研究。根据上面对PC卡接口电路的分析,表2列出了S3C4510B所用的引脚信号:
表2 S3C4510B与PCMCIA接口所需引脚
 从表1、表2看出,PCMCIA接口电路信号线与S3C4510B引脚之间不能直接相连,所以在设计中选用一片CPLD,用它来进行时序转换和产生控制信号的组合逻辑。ARM Linux开发板上将一片FLASH映射到ROM/SRAM/FLASH组0,用于存放用户自己编写的启动代码,所以在设计中将网卡映射到ROM组1和组2中,具体操作如下: nRCS[1] nRCS[2] 0 0 软复位 0 1 组1:映射属性空间和I/O空间 1 0 组2:映射公共空间 1 1 不选用网卡 由此可以得出逻辑表达式: , 。此外,PC卡的I/O读写信号能否通过简单的组合逻辑与S3C4510B相连,还需要分析两者的I/O读写时序。以读时序为例,图2给出了PC卡的I/O读时序,图3给出了S3C4510B的I/O读时序。通过分析两个时序图的不同,在设计中使用CPLD产生I/O空间选择信号/IS,S3C4510B可按下述应用对网卡进行操作。
 图2 PCMCIA接口I/O读时序
 图3 S3C4510B的I/O读时序
(1) 数据线,地址线可以直接相连。网卡只使用S3C4510B的XDATA0~XDATA15数据线。 (2) /IORD、/IOWR信号线可通过/IS,/nOE,/nWBE,/nRCS[1]这四根信号线译码得到:
 图4给出了S3C4510B与PCMCIA接口连接的硬件框图,CPLD完成译码逻辑和协调时序的工作:  图4 S3C4510B与PCMCIA接口的硬件连接框图
3.结束语 本文利用S3C4510B开发PCMCIA接口,通过在uCLinux下编译接口的驱动程序,使无线网卡可以工作在基于ARM的嵌入式平台上,为实现利用ARM Linux评估板来开发无线网络设备完成了基础工作。
参考文献 1 www.pcmcia.org. PC Card Standard Realese 7.0 2 毛章根. PCMCIA接口及其接口卡设计. 微型机与应用. 2001,8: 17~18 3 李驹光,聂雪媛等编著. ARM应用系统开发详解. 北京:清华大学出版社,2003 4 三星公司S3C4510B处理器数据手册
|