ARM-PC/104总线桥接电路
技术领域
本发明涉及一种ARM嵌入式微处理器系统到PC/104总线的桥接电路。
背景技术
ARM嵌入式微处理器系统是基于英国ARM公司微处理器内核的系统,一般由CPU、存储器、网络接口、USB接口等等部分组成,如图2所示。目前,ARM嵌入式微处理器系统不具备直接访问PC/104总线能力,也不具备直接访问ISA总线能力。参考文献:
[1]PC/104 Embedded Consortium.PC/104Specification Version 2.5,November 2003;
[2]AVPRO Computers,Incorporated.ISA Bus Timing Diagrams,P/N 5001321 RevsionA,June 98;
[3]DDI0100E_ARM_ARM.ARM Limited 2000;
[4]Jagger(ed.).ARM Architectural Reference Manual.Prentice Hall.ISBN0-13-736299-4;
[5]Samsung Electronics Co.,Ltd.S3c2410X 32-bit Risc Microprocessor User’s Manual,Revision 1.2.21.2-s3-c2410x-052003;
[6]Samsung Electronics Co.,Ltd.S3c44BOX 32-bit Risc Microprocessor User’s Manual,Revision 1.2.21.2-s3-c2410x-052003;
[7]Altera Corporation.Introduction to Quartus II Version 4.0.January 2004-11-28。
发明内容
本发明的目的在于提供一种使ARM嵌入式微处理器系统具备访问PC/104总线或/和ISA总线能力的ARM-PC/104总线桥接电路。
为了实现上述目的,本发明的技术方案是:ARM-PC/104总线桥接电路(以下简称ARM-PC/104桥)包括地址和数据连接电路、总线定时电路、总线控制电路、中断和DMA辅助电路四个部分组成,地址和数据连接电路由双向锁存缓冲器和译码电路构成,译码电路把PC/104总线的I/O地址空间和储存器空间映射到ARM的储存器空间中,信号Dir控制双向锁存缓冲器的方向,信号oe控制双向锁存缓冲器的输出端有效,信号csn选择双向锁存缓冲器哪几个字节在读写周期中有效;
总线定时电路包括时钟发生器、地址发生器、地址时序发生器三个部分,时钟发生器中引脚信号clock是与ARM嵌入式微处理器系统时钟同步的时钟输入信号,引脚信号nBE[3:0]、引脚信号Addr[26:0]、引脚信号nIOCS16、引脚信号nMEMCS16以及译码器输出使能信号e经过地址发生器后生成总线地址信号SA[23:0]和系统高字节有效信号nBHE,使能信号e上升沿有效时地址时序发生器复位,并开始计数,经过k个引脚信号clock后输出总线地址锁存使能BALE脉冲,同时根据当前周期是IO地址范围或存储器地址范围,插入IOn或MEMn个引脚信号clock周期形成等待信号nWAIT,降低后的总线周期能够满足PC/104时序定时要求,更慢一些的IO设备用IOCHKRDY进一步申请更多的等待周期;
扩展卡总线请求信号nMASTER16有效时,总线控制电路将输出引脚信号nXBREQ给ARMCPU请求总线,ARM CPU以总线请求应答信号nXBACK回应,此后总线控制电路输出信号en使译码电路的存储器读信号nMEMR、存储器写信号nMEMW、系统存储器读信号nSMEMR、系统存储器写信号nSMEMW、IO读信号nIOR、IO写信号nIOW端输出高阻态,而信号oe为低,使双向锁存缓冲器输出处于高阻态,同时总线定时电路的地址总线SA、总线地址锁存使能BALE、系统高字节有效信号nBHE也呈高阻态,总线控制电路输出信号en1同时也使引脚信号DACK[3:0]、引脚信号DACK[7:5]、引脚信号AEN、引脚信号TC输出为高阻态;存储器刷新信号nREFRESH有效时外部设备对PC/104上的动态存储器进行刷新操作,总线控制电路将输出引脚信号nXBREQ给ARM CPU请求总线,ARM CPU以总线请求应答信号nXBACK回应,此后总线控制电路输出信号en使译码电路的存储器读信号nMEMR、存储器写信号nMEMW、系统存储器读信号nSMEMR、系统存储器写信号nSMEMW、IO读信号nIOR、IO写信号nIOW端输出高阻态,而信号oe为低,使双向锁存缓冲器输出处于高阻态,同时总线定时电路的地址总线SA、总线地址锁存使能BALE、系统高字节有效信号nBHE也呈高阻态,总线控制电路输出信号en1同时也使引脚信号DACK[3:0]、引脚信号DACK[7:5]、引脚信号AEN、引脚信号TC输出为高阻态;复位信号nRESET有效时引脚信号RESET输出高电平,同时复位ARM-PC/104桥内部各个计数器;
I/O通道检查信号nIOCHK有效时引起一个中断信号,中断信号可以分配在空闲的任何一个外部中断上;
中断和存储器直接存取(DMA)辅助电路:中断申请信号IRQX经过反向后输出到引脚信号nIRQX,ARM CPU只有两个外部DMA通道,引脚信号DRQ[3:0]相或非后输出给引脚信号nXDREQ0、引脚信号DRQ[7:5]相或非后输出给引脚信号nXDREQ1,引脚信号nXDACK0反向后输出给引脚信号DACK[3:0],引脚信号nXDACK0反向后输出给引脚信号DACK[7:5];AEN在DMA期间被禁止;引脚信号nMASTER16和引脚信号nREFRESH期间,引脚信号IRQX、引脚信号DRQ[3:0]、引脚信号DRQ[7:5]的信号将不被输出到ARM CPU;
引脚分为两组,一组是与ARM CPU总线的连接部分,二组是与PC/104总线连接部分,第一组信号引脚可以直接连接到ARM CPU外部总线相应信号引脚,第二组桥信号可以直接连接到PC/104总线的插座上。
本发明的作用就是把ARM CPU数据总线信号、地址总线信号、控制总线信号或经过总线缓冲器的数据总线B信号、地址总线B信号、控制总线B信号转换为符合PC/104总线规范的信号,从而使ARM CPU也能够正确读、写PC/104总线上的设备。ISA总线与PC/104总线兼容,ARM嵌入式微处理器系统同时也具备直接访问ISA总线能力。本发明使ARM嵌入式微处理器系统具备访问PC/104总线或/和ISA总线能力。
本发明主要应用于以ARM嵌入式微处理器系统为基础的包含PC/104总线接口或/和ISA总线的系统,如图1所示。
附图说明
图1是本发明的应用示意图
图2是现有ARM嵌入式微处理器系统图
图3是本发明的电原理方框结构示意图
图4是本发明的电原理结构示意图
具体实施方式
一、ARM-PC/104总线桥接电路技术规范
1引脚定义
ARM-PC/104桥引脚定义分为两组,一组是与ARM CPU总线的连接部分,二组是与PC/104总线连接部分。表1是这些信号的功能说明。
表1 ARM-PC/104桥引脚信号
序号 |
信号 |
说明 |
第一组 |
与ARM CPU总线的连接部分 |
1 |
Data[31:16] |
双向、三态。数据总线D31~D16 |
2 |
Data[15:0] |
双向、三态。数据总线D15~D0 |
3 |
nGCS[5:1] |
输入,低电平有效,通用片选。当ARM在相应的存储器BANK区间寻址时该信号有效 |
4 |
Addr[26:0] |
输入。地址总线A26~A0 |
5 |
nWE |
输入,低电平有效,存储器写使能,表示当前为写周期 |
6 |
nOE |
输入,低电平有效,存储器读使能,表示当前为读周期 |
7 |
clock |
系统时钟,总线操作时钟 |
8 |
nWAIT |
输出,低电平有效,总线操作等待信号。使当前总线操作周期延长 |
9 |
nBE[3:0] |
输入,低电平有效,字节使能 |
10 |
nIRQX |
输出,中断请求 |
11 |
nXBREQ |
输出,低电平有效,总线请求。另一个总线主控设备请求本地总线控制 |
12 |
nXBACK |
输入,低电平有效,总线请求应答。允许另一个总线主控设备保持本地总线控制 |
13 |
nRESET |
输入,低电平有效,复位 |
14 |
nXDREQ[1:0] |
输出,低电平有效,DMA通道0、1请求 |
15 |
nXDACK[1:0] |
输入,低电平有效,DMA通道0、1请求应答 |
| | |
第二组 |
与PC/104总线连接部分 |
1 |
SD[15:8] |
双向、三态。数据总线高8位D15~D8 |
2 |
SD[7:0] |
双向、三态。数据总线低8位D7~D0 |
3 |
SA[23:0] |
输出,地址总线,A23~A0 |
4 |
nMEMR |
输出,低电平有效,存储器读。表示当前为存储器读操作周期 |
5 |
nMEMW |
输出,低电平有效,存储器写。表示当前为存储器写操作周期 |
6 |
nSMEMR |
输出,低电平有效,系统存储器读。当存储器地址A23~A0为第一个1M地址内读操作时,nSMEMR有效 |
7 |
nSMEMW |
输出,低电平有效,系统存储器写。当存储器地址A23~A0为第一个1M地址内写操作时,nSMEMW有效 |
8 |
nIOR |
输出,低电平有效,IO读。表示当前为IO读操作周期 |
9 |
nIOW |
输出,低电平有效,IO写。表示当前为IO写操作周期 |
10 |
BCLK |
输出,系统时钟 |
11 |
OSC |
输出/或输入,14.31818Hz时钟 |
12 |
IOCHKRDY |
输入,高电平有效,I/O通道准备。请求附加总线周期 |
13 |
nSRDY |
输入,低电平有效,同步准备。请求提前结束当前周期 |
14 |
nIOCS16 |
输入,低电平有效,16位I/O通道寻址片选信号 |
15 |
nMEMCS16 |
输入,低电平有效,16位存储器寻址片选信号 |
16 |
BALE |
输出,高有效。总线地址锁存使能 |
17 |
nBHE |
输出,低电平有效,系统高字节有效 |
18 |
nREFRESH |
存储器刷新 |
19 |
nMASTER16 |
输入,低电平有效,扩展卡请求系统总线 |
20 |
nIOCHK |
输入,低电平有效,I/O通道检查。有效时表示I/O通道故障 |
21 |
RESET |
输出,高有效,系统复位 |
22 |
IRQX |
中断请求 |
23 |
DRQ[3:0]DRQ[7:5] |
输入,DMA请求 |
24 |
DACK[3:0]DACK[7:5] |
输出,DMA请求响应 |
25 |
TC |
输出,DMA计数终止 |
26 |
AEN |
输出,总线地址使能 |
| | |
电源 | |
1 |
Vcc |
电源正,例如5V,3.3V等 |
2 |
GND |
地 |
2基本电气特性
(1)ARM-PC/104桥信号与ARM CPU总线的连接部分满足ARM CPU外部总线规范,参见参考文献[3]~[6]。各信号引脚可以直接连接到ARM CPU外部总线相应信号引脚。
(2)ARM-PC/104桥信号与PC/104总线的连接部分满足PC/104总线规范,参见参考文献[1][2]。ARM-PC/104桥信号可以直接连接到PC/104总线的插座上,各个信号与PC/104总线插座引脚的关系如表2。
表2 ARM-PC/104桥信号与PC/104总线插座引脚的关系
P2 |
Pin |
Row D |
Row C |
0 |
GND |
GND |
1 |
nMEMCS16 |
nSBHE |
2 |
nIOCS16 |
SA23 |
3 |
IRQ10 |
SA22 |
4 |
IRQ11 |
SA21 |
5 |
IRQ12 |
SA20 |
6 |
IRQ15 |
SA19 |
7 |
IRQ14 |
SA18 |
8 |
nDACK0 |
SA17 |
9 |
DRQ0 |
nMEMR |
10 |
nDACK5 |
nMEMW |
11 |
DRQ5 |
SD8 |
12 |
nDACK6 |
SD9 |
13 |
DRQ6 |
SD10 |
14 |
nDACK7 |
SD11 |
15 |
DRQ7 |
SD12 |
16 |
+5V |
SD13 |
17 |
nMASTER |
SD14 |
18 |
GND |
SD15 |
19 |
GND |
KEY |
P1 |
Pin |
Row A |
Row B |
1 |
nIOCHK |
GND |
2 |
SD7 |
RESET |
3 |
SD6 |
+5V |
4 |
SD5 |
IRQ9 |
5 |
SD4 |
-5V |
6 |
SD3 |
DRQ2 |
7 |
SD2 |
-12V |
8 |
SD1 |
nSRDY |
9 |
SD0 |
+12V |
10 |
IOCHRDY |
KEY |
11 |
AEN |
nSMEMW |
12 |
SA19 |
nSMEMR |
13 |
SA18 |
nIOW |
14 |
SA17 |
nIOR |
15 |
SA16 |
nDACK3 |
16 |
SA15 |
DRQ3 |
17 |
SA14 |
nDACK1 |
18 |
SA13 |
DRQ1 |
19 |
SA12 |
nREFRESH |
20 |
SA11 |
BCLK |
21 |
SA10 |
IRQ7 |
22 |
SA9 |
IRQ6 |
23 |
SA8 |
IRQ5 |
24 |
SA7 |
IRQ4 |
25 |
SA6 |
IRQ3 |
26 |
SA5 |
nDACK2 |
27 |
SA4 |
TC |
28 |
SA3 |
BALE |
29 |
SA2 |
+5V |
30 |
SA1 |
OSC |
31 |
SA0 |
GND |
32 |
GND |
GND |
3其他性能
(1)PC/104地址
ARM CPU特别是使用ARM7、ARM9、ARM10内核的系统芯片,一般都具有4GB空间的寻址能力。PC/104是基于X86的标准总线,他只占用4G空间的一小部分,相互间关系如表3所示。ARM-PC/104桥存储器时序和I/O时序在满足PC/104规范的同时,在不改变PC/104扩展板上硬件电路的情况下,只要电路条件允许,可以提高总线访问速度,最高能够达到零等待的ARM外部总线操作速度,即本发明提供了一个使用快速I/O空间的机制,具备比标准PC/104更快的总线操作速度,以提高I/O能力。表3中ARM-PC/104桥的地址只是本发明的一个实现特例,按照具体系统已有设备占用地址的情况,可以让ARM-PC/104桥使用其他地址范围,以避免地址冲突。
表3 PC/104地址参照
ARM-PC/104 PC104定义 对应x86地址 空间大小
桥地址
2920 FFFFH2920 0000H |
ARM-PC/104桥扩展的快速I/O空间 |
FFFFHx86 I/O寻址范围0000H | 64KB |
2900FFFFH2900 0000H | I/O空间 |
FFFFHx86 I/O寻址范围0000H | 64KB |
28FF FFFFH2800 0000H | 存储器空间 |
FF FFFFHx86存储器寻址范围00 0000H | 16MB |
(2)中断
ARM CPU特别是使用ARM7TDMI、ARM9TDMI内核的系统芯片,一般都具有足够多的外部中断,提供给ARM-PC/104桥来映射PC/104总线上的中断源。并且ARM系统芯片上一般可以把中断编程为上升沿、下降沿、高电平、低电平或双沿触发,因而比PC/104提供更多触发类型的中断。表4是一个PC/104总线中断通过ARM-PC/104桥映射到ARM系统相应中断的实现特例,其电路原理图在图4中。
(3)DMA
ARM CPU特别是使用ARM7TDMI、ARM9TDMI内核的系统芯片,一般都具有两个支持PC/104总线的8位/16位/32位可编程DMA控制器,提供总线←→总线、总线←→外设、外设←→外设传输模式,DMA通道DRQ0,DRQ1,DRQ2,DRQ3都使用DMAO控制器,DMA通道DRQ5,DRQ6,DRQ7都使用DMA1控制器。
二、本发明的工作原理,如图3所示,地址和数据连接电路、总线定时电路、总线控制电路、中断和DMA辅助电路:
(1)地址和数据连接电路
本发明的译码电路把PC/104总线的I/O地址空间和储存器空间映射到ARM的储存器空间中。表3是一个具体的例子,nGCS[5:1]、Addr[26:0]、nEW、nOE经译码电路译码后形成nMEMR、nMEMW、nSMEMR、nSMEMW、nIOR、nIOW、dir、oe、csn和e信号。信号Dir控制双向锁存缓冲器的方向,信号oe控制双向锁存缓冲器的输出端有效,信号Csn选择双向锁存缓冲器哪几个字节在读写周期中有效。
ARM CPU外部总线宽度一般都可以编程为字节宽度(8Bit)、半字宽度(16Bit)或字宽度(32Bit),PC/104总线则在nIOCS16或nMEMCS16为低时按16位访问I/O设备或储存器,否则按8位进行访问。总线定时电路产生csm信号控制双向锁存缓冲器内部的一组多路器,使多字节双向锁存缓冲器在nIOCS16或nMEMCS16为低同SD的高、低位字节连接,而其他情况只连接到SD的低位字节。
多字节双向锁存缓冲器在ARM CPU外部总线宽度为字节和半字宽度时,最少包含两个字节宽度的双向锁存缓冲器,在ARM CPU外部总线宽度为字宽度时最少需要四个字节宽度的双向锁存缓冲器。
(2)总线定时电路
总线定时电路包括时钟发生器、地址发生器、地址时序发生器三个部分,时钟发生器中引脚信号clock是与ARM嵌入式微处理器系统时钟同步的时钟输入信号,引脚信号nBE[3:0]、引脚信号Addr[26:0]、引脚信号nIOCS16、引脚信号nMEMCS16以及译码器输出使能信号e经过地址发生器后生成总线地址信号SA[23:0]和系统高字节有效信号nBHE,使能信号e上升沿有效时地址时序发生器复位,并开始计数,经过k个引脚信号clock后输出总线地址锁存使能BALE脉冲,同时根据当前周期是IO地址范围或存储器地址范围,插入IOn或MEMn个引脚信号clock周期形成等待信号nWAIT,降低后的总线周期能够满足PC/104时序定时要求,更慢一些的IO设备用IOCHKRDY进一步申请更多的等待周期。
k同clock时钟频率Fc有关,Fc在100MHz时,k=4,Fc在50MHz时,k=2。
IOn和MEMn由ARM CPU存储器读写时钟周期和PC/104总线IO或存储器读写时钟周期的差值确定。
IOn=(PC/104总线IO读/写时间-ARM CPU存储器读/写时间)*Fc
MEMn=(PC/104总线存储器读/写时间-ARM CPU存储器读/写时间)*Fc
(3)总线控制电路
扩展卡总线请求信号nMASTER16有效时,总线控制电路将输出引脚信号nXBREQ给ARMCPU请求总线,ARM CPU以总线请求应答信号nXBACK回应,此后总线控制电路输出信号en使译码电路的存储器读信号nMEMR、存储器写信号nMEMW、系统存储器读信号nSMEMR、系统存储器写信号nSMEMW、IO读信号nIOR、IO写信号nIOW端输出高阻态,而信号oe为低,使双向锁存缓冲器输出处于高阻态,同时总线定时电路的地址总线SA、总线地址锁存使能BALE、系统高字节有效信号nBHE也呈高阻态,总线控制电路输出信号en1同时也使引脚信号DACK[3:0]、引脚信号DACK[7:5]、引脚信号AEN、引脚信号TC输出为高阻态;
存储器刷新信号nREFRESH有效时外部设备对PC/104上的动态存储器进行刷新操作,总线控制电路将输出引脚信号nXBREQ给ARM CPU请求总线,ARM CPU以总线请求应答信号nXBACK回应,此后总线控制电路输出信号en使译码电路的存储器读信号nMEMR、存储器写信号nMEMW、系统存储器读信号nSMEMR、系统存储器写信号nSMEMW、IO读信号nIOR、IO写信号nIOW端输出高阻态,而信号oe为低,使双向锁存缓冲器输出处于高阻态,同时总线定时电路的地址总线SA、总线地址锁存使能BALE、系统高字节有效信号nBHE也呈高阻态,总线控制电路输出信号en1同时也使引脚信号DACK[3:0]、引脚信号DACK[7:5]、引脚信号AEN、引脚信号TC输出为高阻态;
复位信号nRESET有效时引脚信号RESET输出高电平,同时复位ARM-PC/104桥内部各个计数器;
I/O通道检查信号nIOCHK有效时引起一个中断信号,中断信号可以分配在空闲的任何一个外部中断上,例如外部中断7。
(4)中断和存储器直接存取(DMA)辅助电路:
中断申请信号IRQX经过反向后输出到引脚信号nIRQX,ARM CPU只有两个外部DMA通道,引脚信号DRQ[3:0]相或非后输出给引脚信号nXDREQ0、引脚信号DRQ[7:5]相或非后输出给引脚信号nXDREQ1,引脚信号nXDACK0反向后输出给引脚信号DACK[3:0],引脚信号nXDACK0反向后输出给引脚信号DACK[7:5];
AEN在DMA期间被禁止;
引脚信号nMASTER16和引脚信号nREFRESH期间,引脚信号IRQX、引脚信号DRQ[3:0]、引脚信号DRQ[7:5]的信号将不被输出到ARM CPU。
(5)实现ARM-PC/104桥的硬件元件举例
ARM-PC/104桥可以用74LV373,74LV138,74LV16373等中规模集成电路芯片实现,也可以用CPLD或FPGA电路芯片(例如ALTERA MAX和MAX II等)来实现,或者使用这些电路元件的组合来实现,或者使用专用集成电路实现。
本发明有许多有益的用途,例如构成以ARM为CPU的满足PC/104规范的90mm、3.5”、5”规格的系统等,也可以构成以ARM为CPU的带ISA总线插槽的各种系统。图4的结构ARM-PC/104桥可用于三星公司S3C2410 ARM9,构成一个系统应用;通过ARM-PC/104桥使得S3C2410具备了访问PC104总线的能力;图4中EPM1为ALTERA EPM3256,U1、U2均为74LV162245,S3C2410被初始化为16位的外部存储器接口。