当前位置:首页 > 嵌入式 > 嵌入式硬件

引 言

PC/104是一种工业计算机总线标准。PC/104有两个版本,8位和16位,分别与PC和PC/AT相对应。PC/104PLUS 则与PCI总线相对应。 第一块PC104产生于1987年,但严格意义的规范说明在1992年才公布,后来对PC104感兴趣的人越来越多,众多厂家生产PC104兼容产品。像原来的PC总线一样,PC104一直是以一个非法定标准在执行,而不是委员会设计制定的。1992年IEEE开始着手为PC和PC/AT总线制定一个精简的IEEEP996标准(草稿),PC104作为基本文件被采纳,叫做IEEE P996.1兼容PC嵌入式模块标准。可见,PC104是一种专门为嵌入式控制而定义的工业控制总线。

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

1 PC/AT模型和PC/104总线

1.1 总线信号

PC104有两个版本,8位和16位,分别与PC和PC/AT相对应。PC104PLUS 则与PCI总线相对应,在PC104总线的两个版本中,8位PC104共有64个总线管脚,单列双排插针和插孔,P1:64针,P2:40针,合计104个总线信号,PC104因此得名。当8位模块和16位模块连接时,16位模块必须在8位模块得下面(见附图2)。P2 总线连结在8-位元模块中是可选的,这样让这些模块无论何处都可在堆栈中使用。

PC/104_4 是一种16位总线,但可向前兼容8位XT模式,典型总线时钟为8 MHz,4个时钟脉冲可完成一次完整的总线访问,必要时可插入一个额外的等待周期以适应低速外设。

1.1.1 地址和数据信号线

BALE总线地址锁存使能信号线,由平台CPU驱动。当ISA扩展卡或DMA控制器占用总线时,它也被置为逻辑1.

SA~19:O>:低2O根地址信号线,由当前总线的拥用者驱动。

LAd 23:17> :锁存地址信号线,用来访问16MB的存储器地址空间。由当前总线拥有者或DMA控制器驱动。

SD<15:0> :数据信号线。

1.1.2 总线周期控制信号线

MEMR#:存储器读信号线。

MEMW #:存储器写信号线。

IOR#:I/O I/O读信号线。

IOW #:I/O I/O写信号线。

1.1.3 中断和DMA(Direct Memory Access)信号线

IRQx:中断请求信号线。

DRQx:DMA请求信号线。

DACKx#:DMA应答信号线。

1.2 地址空间

PC AT是美国国际商用机器公司(IBM)于1984年发布、1987年停产的个人电脑产品,正式名称是IBM 5170 PC AT。“AT”是英文“先进技术”(Advanced Technology)的缩写,这是由于它引入了标准的16位ISA总线以及采用了当时最新的英特尔80286处理器。PC/AT是IBM公司自PC机发布后的第二代升级产品(也有人认为在此之前发布的PC/XT是第二代产品)。尽管早期的产品存在着与磁盘存储部件相关的瑕疵,它最终还是迅速流行于商用及普通用户市场,成为了PC工业最持久的事实标准。至今,由于软件兼容性的原因,最新的PC系统都还支持PC/AT机的总线结构。

PC/AT系统使用不同的指令访问存储器空间和IO端I:1空间,访问存储器空间时PC/104总线驱动MEMR#和MEMW#信号,访问存储器空间时PC/104总线驱动IOR#和IOW #信号。

PC/AT系统有专门的端口访问指令用于实现端口访问,Linux用户程序只需以root权限调用ioperm()指定需操作的端口地址范围,之后即可自由访问这些端口。由于用于访问端口的一组宏实际上直接对应CPU的端口访问指令,所以存取效率很高。

1.3 PC/104总线周期

PC/104总线周期分为CPU驱动和DMA控制器驱动两大类,在嵌入式应用中较常用的是CPU驱动的IO读/IO写周期。

图1中采用8 MHz时钟的标准PC/104总线£Rd大于300 ns,tAF应大于250 ns,tRDpw约为500 ns。

2 EP9315(ARM920T)体系

2.1 存储器结构和地址空间

EP9315是Cirrus Logic公司生产的典型ARM 920 TDM I(Thumb,Debug,M ultiply,Em—bedded ICE macrocel1)32位哈佛结构处理器。EP9315有一个通用存储器访问接口,支持SDRAM,SRAM,ROM,及FLASH等不同形式的存储器,各种存储器访问均共享数据总线DA和地址总线AD,使用统一的访问控制逻辑 。

与X86模型不同,ARM 平台只实现一个物理地址空间,在Bo0T成功后只拥有一个唯一的虚地址空间,CPU不设立专门的外设I/O指令,访问外设I/O端口和内存单元使用相同的指令。

引脚CSn[7:6]和CSn[3:O]用于存储器芯片的选通,除发生时间略有差异之外(图2),基本上可视为地址总线的高位线。

2.2 AHB总线时序和SRAM 接口

AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构如图1所示。针对Soc设计中IP复用问题提出了一种新的解决办法。传统的方法是将特定功能模块的非标准接口标准化为AHB主/从设备接口,本文提出了一种新的基于ARM的Soc通用平台设计寄存器总线标准接口,这种设计使整个系统的结构清晰,增强系统的通用性与系统中功能模块的可移植性。

静态存储控制器SMC(Static Memory Controller)与920T核心通过AHB互联,支持存储器的8/16/32位访问方式。SMC最多可提供8个组,每个组均可支持SRAM,ROM,FLASH EPROM 等存储器的访问,各组可以对数据总线宽度和速度等参数独立配置。图2描述了SRAM 读操作时序。

图中f删为CSn到RDn的延迟,最大值为3 ns;tDAs是RDn无效前的数据总线建立时间,最小值为12+tHcI tRDD 是RDn有效时间,典型值为t HcI K×(W ST1+ 2)。

HCLK是AHB总线的工作频率,该频率的高低直接影响系统全局性能,因此通常配置为上限100 MHz,此时相应周期£胁 为10 ns.WSTI用于控制sMc对SRAM/R0M 的访问速度,寄存器SMCBCR0—3, SMCBCR6-7 (地址0x80080000—0x8008001C)的第5-9位分别为相应各组的WST1.WST1的默认值为0xlF,即默认情况下SMC使用最低的访问速度,显然fRDD 为330 ns,小于PC/104总线中的500 ns(图1)。

3 PC/104总线实现

3.1 总线驱动

在EP9315支持的各类总线接口逻辑中,SMC提供的SRAM/ROM 时序与PC/104总线最为接近。将外部设备所需的PC端口空间和存储器空间均映射至统一的虚拟空间中即可实现访问。

注意到PC/104总线使用标准TTL逻辑电平,而EP9315的处理器是3.3 V器件,在极端负载情况下无法保证系统稳定工作。TI的双电源总线收发器1T45,2T45,16T245等可用于实现电平转换,图3是1T45的引脚逻辑图。

地址总线及访问控制信号均由CPU驱动,外部设备始终处于被动接收状态,正确设定数据流向即可。

数据总线信号是时分双向传输的,为遍免出现总线冲突,必须保证除非CPU 透过该收发器对外设进行读访问,否则收发器的CPU 侧应始终处于高阻状态。为此,16T245等具有输出使能端的器件只需使输出无效即可,而对于无使能端的收发器则应使CPU侧处于输入状态(高阻)。

确认CPU 已向兼容PC/104总线发起读操作的有效方法是检查RDn的下降沿是否发生。一旦RDn下降,应立即将收发器置成从外设流向CPU方向,且输出使能有效,并至少保持至RDn上升沿之后,以保证可靠读取。

3.2 端口映射

任取CSi和CSj组用于兼容总线,即可分别实现O-0x3FFFFFF的独立存储器地址和IO端口地址。可用地址数量已经远超出XT系统中的1 M(存储器)和1 K(IO端口)。

在Linux系统中,io.h文件中声明了函数iore—map(),用于将兼容总线上外部资源的物理地址映射到核心虚地址空间中。iounmap()函数用于取消ioremap()所做的映射。在外部资源成功映射到核心虚地址后,使用指向核心虚地址的指针就可访问相应设备资源,但显然这种访问方式与在X86平台下差异较大。

将兼容总线视为一个独立的字符设备,为其编写驱动程序,实现对指定偏移地址的读写函数,此处的偏移地址即对应PC/104总线中的物理地址。

对inb(),outb()等X86平台下的常见的底层端口操作函数,可用宏替换的方式转由驱动中的相应读写函数实现。

3.3 总线时序控制

综合前文所述,尽管SMC的SRAM 访问时序非常接近PC/lO4总线,但是要实现高兼容性的PC/lO4,仍有两方面问题需要解决,一是SMC驱动的SRAM 读写速度远高于PC/104总线,二是为解决电平兼容问题引入的总线收发器,其数据流向和输出使能需要适当的控制。

ECLK是频率为27 MHz是时钟脉冲。

If ECLK’EVENT and ECLK一‘1’then

if(? )then __地址无效

EXoE< 一:1’;

EXDlR< 一‘1’;

EIOR< 一‘1’;

rdreg< 一0;

else

if rdreg< 1 l then

rdreg< 一rdreg+ 1;

EXOE< 一‘0’;

else

rdreg< 一0;

EXDIR< 一‘1’;

EXoE< 一‘1’;

end if;

if rdreg< 2 or rdreg> 6 then

EIOR< 一‘1’;

EIOW < 一‘1’;

elsif rdreg一2 or rdreg= 3 then

if RDn一‘1’then

EIOR< 一‘1’;

EXDIR< 一‘1’;

elsif W Rn一‘1’then

EIOW < 一‘0’;

EXDIR< 一‘1’;

end if;

end if;

上述代码适当延迟了关闭双电源收发器的输出使能和数据流向重设时间,保证数据总线稳定,使CPU 和外设有足够的时间进行输入输出操作。

图4中曲线2是兼容PC/104地址空间内任意地址信号经收发器缓冲后的译码结果,曲线1和曲线3是对该地址进行读操作时的RDn和IOR信号。

图4中RDn由EP9315直接驱动,原始逻辑电平为3.3 V,实验电路对该信号电平进行了无时延的处理。

目前主流元器件在速度上都已能兼容PCI总线,因此尽管SMC驱动的SRAM 读写速度高于标准PC/104总线,但只要保证各控制信号问关系清晰(图4b),是不会造成总线访问失败的。

4 结束语

利用ARM 系统成本较低,功耗更小,启动速度快,指令效率高的的特点,兼取PC/AT系统和PC/104总线设备在产业化基础方面的优势,在ARM平台上构建PC/104总线,有助于利用现有资源,保护已有投资。由于ARM 与PC/AT模型在处理器架构上有本质性的差异,在ARM 平台上构建的PC/104总线在所有的具体应用中要做到与标准PC/104规范完全兼容几乎是不可能,但是在特定的应用需求及确定的操作系统下这种努力是完全可行并且有效的。对于特定的应用而言,通常只需顾及PC/104总线时序的一个子集,这就大大降低了系统现实的难度。



QICK

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭