PC/104是一种专门为嵌入式应用而定义的总线 ,lEEE会将它定义IEEE—P996 1,信号定义和PC/AT基本一致 ,但气和机械规范却完全不同,是一种优化的、小型、堆栈式结构嵌入式系统 。基于PC/104结构的模块由于开发方便、品种富、结构简单等优势在工业控制领域有着广泛的应用。
ARM(Advanced RISC Machine)公司成立于 1990年月,是苹果电脑,Acorn电脑集团和 VLSI Technology的合资业 。ARM首创了CHlPLESS的模式 ,该公司只设计出高效ARM内核,通过将 ARM内核授权给开云棋牌官网在线客服公司 ,由开云棋牌官网在线客服公根据实际的应用情况加上各种外围的功能比如Flash、串RTC等构成一块完整的芯片。
本文主要介绍基于ARM的 PC/104模块的结构 ,并给出总线模拟 、串行通讯接口以及驱动程序的相关内容。
1 PC/104处理器模块的要求
在工业控制和数据采集中 ,PC/104模块的总线 、串口功是必不可少的,而硬盘接口、并行口、键盘口等 lO 口却很少用 ,因此在选用另外的CPU代替x86作为PC/104模块的处器首先要求能够兼容原有的 PC/104总线 ,使得符合PC/规范的数字量输入/输出模块、模拟量输入/输出模块以及针PC/104系统开发的各个系统能够正常使用;其次该处理器须具有 2个串行接 口,以适应大部分场合的串行通讯需要三 ,必须具有可以满足足够的程序空间和RAM空间为用户的序和数据使用;第四,必须具有 RTC(Real Time Clock),并能断电时保持系统时间不变;第五 ,友好的开发环境 ,以适应现系统开发的需要 。
2 基于Inte1386SX的 PC/104模块的缺点
首先 ,基于386SX 的 PC/104处理器模块的成本比较386SX/40的控制模块的价格在千元以上 ;第二,功耗较大瓦的功耗给电源供应、散热的设计带来一系列的问题,并且不合某些低功耗要求的环境中应用;第三 :程序烧写繁琐 ,基x86的PC/104的理器模块一般采用 DOC (Disk On Ch或者 DOM(Disk On Module)作为程序存储器,由于DOC用烧写工具比较昂贵 ,所以实际生产时多采用人工烧录方法括格式化、复制多个步骤 ,每烧一块芯片需要断电 、重新启动器数次,效率低下 、操作繁琐 ;第四,系统启动速度慢 ,从上电开始执行用户程序一般需要 2—5秒时间,WDT溢出时恢复时间较长,容易遗漏一些重要的事件。第五 ,开发环境不够友好,基于386SX 的 PC/104处理器模块的程序一般在 DOS环境下开发,开发工具一般为TURBO C或者BORLAND C,开发环境比较落后,编程 、调试非常的不方便。
3 ARM处理器的特点
首先速度快 ,ARM是一种基于 RISC架构的处理器 ,运行在44MHz的ARM的处理器的处理能力可大40MlPS,远大于基于CISC架构 386SX/40的13MIPS;其次 ,功耗非常低 ,例LPC2129的内核耗电仅为 30mA (供 电电压为 1.8V,时钟为 60MHz),功耗为 54mW,不到 386SX的十分之一 ;第三,集成度高、功能强大 ,很多世界著名的开云棋牌官网在线客服厂家都购买了 ARM的内 核,并根据市场的需要推出了集成丰富外围功能包括 SRAM、 RTC,CAN接口、串行口、以太网接口等等的芯片 ,在很多应用场合,一块ARM芯片可以满足所有的需要;第四,价格低廉,ARM芯片生产厂家很多,在工业控制和民用产品中的应用也非常广泛,芯片价格非常低廉 ,带128KFLASH的PHILIPS LPC2104的市场价格仅为50元人民币。
4 CPU的选择
经过80186、X51、ARM、DSP等多种CPU 比较后最终确定采用ARM作为 PC104处理器模块的替代处理器,为了兼容原 有的基于 PC/104设计的板卡。经过多家 ARM产品的比较,最 终确定采用 PHILIPS LPC2129作为本次开发的 PC/104处理 器模块 的 CPU。LPC2129是基于一个支持实时仿真和跟踪的 16/32位 ARM7TDMl—S CPU,并 内置 256K字节(KB)的高速 Flash存储器。128位宽度的存储器接口和独特的加速结构使 32位代码能够在最大时钟速率(60MHz)下运行。LPC2129采 用很小的 TQFP一64封装 、具有极低的功耗 、2个串口、多个 32 位定时器 、4路10位ADC、2路CAN、PWM通道 、46个 GPlO 以及多达 9个外部中断使它特别适用于工业控制领域CPU模块的开 发 。
5 系统结构
基于ARM的PC/104系统主要由处理器 、总线接口 、 Flash、实时时钟 、复位电路 、通讯接口、调试接口、电源几个部分组成 ,如图 1所示。
6 硬件设计
6 1总线部分
本模块开发的关键之一是 PC/104总线的接口,包括控制总线 、地址总线和数据总线 ,采用专用的 3 3V/5V电平转换芯片74LVC4245以保证不同电平电路的高速互连,74LVC4245是一块A3 8位的总线收发器 ,并可以在5V和3.3V系统之间实现电平的转换。
地址总线 、数据总线 、控制总线可以采用 PHILIPS的LPC2292等带扩展总线ARM处理器的总线 ,也可以采用 LPC2192 ARM 处理器电平转换收发器的P0口、P1口的空闲引脚行模拟。在总线模拟时,由于P0口引脚和扩展功能的复用 ,因地址总线 、数据总线很难选用连续的IO引脚,在编写总线驱程序时只能通过CPU的移位指令灵活的处理:
void outportb(unsigned int portAdd ress,unsigned char value)
{
addr=(portAddress<<1O)://将地址 向右移 1O位
a=(value << 21): //利用两次移位,合成一个 8位数据
b=(value<<23).
a=(a& Ox01eO0000); //屏蔽无关位
b=(b& O×78OOOOOO):
data=(a I b):
}
6_2 串口通讯
串口通讯是工业控制中的一个非常重要的通讯方式 ,原的x86 PC/104处理器模块包含两个带Modem接口的RS23接口,由于在实际应用中很少用到全功能的Modem接口,所在开发中省略RS232接口中的与 Modem通讯握手相关的号 ,包括RTS、DCD、CTS、RI、DTR、DSR六个通讯握手的信号只保留 RXD、T×D、GND三个信号。在接口上仍旧采用双排针的插座 ,引脚排列也按照 DTE(Digital Terminal Equipmen的标准设置,以达到和原有的 386S×/40的PC/104处理器块的充分兼容。
由于省略了 Modem通讯握手的相关信号 ,使得采用 1TTL/RS232的电平转换芯片 MAX3232实现两个串口的接口成为可能 ,并在实际的使用中得到了验证。
6.3 驱动程序
为了兼容已有的系统减少软件移植的工作量 ,因此在编写底层驱动程序时已充分考虑和 DOS开发环境的底层驱动程序兼容 ,伯比侣如仃在编垤写¨总”线驱动程序时编写了 unsigned char in portb(unsigned int portAddress)和void outportb(unsigned int portAddress.unsigned char value)两个函数: void outportb(unsigned int portAddress,unsigned char value)
{
}:
unsigned char inportb(unsigned int portAddress)
{ll_
}
这样原有在Dos下开发的程序源代码不需要修改,只需要在ARM 的开发平台上重新编译一下即可。
7 结束语
采用ARM处理器替代386SX的PC/104处理器模块后, 首先成本大幅降低 ,该模块在某公司的环形线圈车辆检测器中投用后 ,产品的单位生产成本大幅降低 ,同时也最大限度的利用了以前的开发成果。第二 ,功耗大幅降低,CPU模块的功耗从原来8W 降低到现在的1W;第三,程序烧录方便 ,可以通过JTAG口或者串El直接下载程序 ,非常方便。第四,启动速度加快 ,系统启动时间小于0、5秒 ,远小于基于 386SX的 PC/104处理器的 2—4秒 ;第五,执行速度加快 ,全部任务执行完毕的时间从 2ms缩短为 0.5ms,速度提高了约4倍 ;第六 ,开发平台更加友好 ,基于 386SX的PC/104模块的开发在 D0S下进行,开发工具一般用 TURBO C或者 BORLAND C,ARM 开发则采用 WlND0WS 下的 ADS(ARM Developer Suite)进行开发 ,而且可以非常方便地在线跟踪和调试 。
采用LPC2129CPU的PC/104处理器的车辆检测器在国 家“十五”科技攻关lTS专项杭州市智能交通系统示范工程的西湖隧道 、九曜山隧道中成功的投入使用,准确 、及时、可靠的采集了隧道的车速 、流量 、车道占有率等道路交通信息 ,取得了良好的社会效益 。