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

引 言

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

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

随着科技的飞速发展,电子产品在我们日常生活中扮演着越来越重要的角色。而在这些电子产品中,接口作为连接设备与外部设备的桥梁,其重要性不言而喻。其中,Type-C接口作为一种新型的接口标准,因其独特的优势,逐渐成为了众多电子...

关键字: 电子产品 Type-C 接口

在这篇文章中,小编将对USB接口的相关内容和情况加以介绍以帮助大家增进对USB接口的了解程度,和小编一起来阅读以下内容吧。

关键字: USB 通用串行总线 总线

今天,小编将在这篇文章中为大家带来嵌入式总线技术的有关报道,通过阅读这篇文章,大家可以对嵌入式总线技术具备清晰的认识,主要内容如下。

关键字: 嵌入式 总线

随着电动汽车的普及,充电桩作为电动汽车的重要基础设施,越来越受到人们的关注。然而,对于许多电动汽车用户来说,直流充电桩和交流充电桩的接口和区别仍然是一个令人困惑的问题。本文将从接口和区别两个方面,详细探讨直流充电桩和交流...

关键字: 电动汽车 接口 充电桩

武汉2023年9月19日 /美通社/ -- 目前,在国家政策和市场需求双重驱动下,国内数据库行业呈现出百花齐放的态势。充分竞争的市场环境下,达梦数据连续数年保持中国数据库管理系统市场占有率前列地位,成为当之无愧的国产数据...

关键字: DM DSC 国家电网 接口

深圳2023年9月15日 /美通社/ -- 9月14-15日,2023全球AI芯片峰会(GACS 2023)在深圳正式举行。峰会以【AI 大时代 逐鹿芯世界】为主题,共探AI芯片的产学研用,邀请了清华大学教授、中国半导体...

关键字: 接口 芯科 内存 AC

Type-C接口已经成为当今市场上备受青睐的接口之一。它以其小巧轻便、高速传输、支持多种协议等特点,吸引了越来越多的关注。

关键字: Type-C 接口 USB

USB-C和Type-C是两种不同的USB接口类型,它们在外观、结构和功能上有一些区别。下面将详细介绍这两种接口类型的区别和特点,帮助大家更好地了解和认识它们。

关键字: usb-c type-c 接口

USB接口是现代电子设备中常用的接口之一,它具有通用性强、传输速度快、易于使用等特点。USB接口的应用范围非常广泛,从智能手机、笔记本电脑到电脑外设、智能家居等都可以看到它的身影。在USB接口的发展历程中,出现了多种不同...

关键字: USB 接口

USB接口是一种常见的串行接口,它的全称是Universal Serial Bus,由USB Implementers Forum制定。USB接口具有通用性强、传输速度快、支持多种设备同时连接等优点,因此在现代电子设备中...

关键字: USB 接口 串行接口
关闭
关闭