基于CH365芯片的PCI总线接口卡的设计与实现

发布者:跳跃龙珠最新更新时间:2007-11-05 来源: 现代电子技术关键字:地址  存储  突发  译码 手机看文章 扫描二维码
随时随地手机看文章

1 引 言

ISA(Industry Standard Architecture,工业标准结构)总线是上世纪八十年代中期出现的工业现场控制总线。ISA总线数据传输速率较低,又不能动态地分配系统资源,且对CPU占用率高,相应的插卡数量有限,并且如果几个设备同时调用共享的系统资源,很容易出现冲突现象。所以ISA总线被PCI总线为代表的新一代计算机总线替代成为必然。与ISA总线相比,32位的PCI总线速度更快(数据传输率为133 Mb/s)、实时性更好、可控性更佳,更易于实现高速实时的I/O口控制卡、通信接口卡、数据采集卡等。但PCI总线也因其32位地址与数据复用、控制总线及时序较复杂等原因导致以FPGA实现比较困难。本文所述通过CH365芯片可以快速实现PCI接口电路的设计,支持ISA总线接口向PCI总线接口的升级,并且由CH365芯片的本地硬件地址功能可以实现原系统软件无需修改就可使用,大大降低了板卡升级的时间周期和开发难度,具有较高的实用价值和推广价值。

2 PCI总线的特点

PCI是先进的高性能局部总线,可同时支持多组外围设备。其特点是:总线操作与处理器一存储器子系统操作并行;线性突发传输;极小的存取延误;不受处理器限制;基于PCI卡设备信息,全自动配置与资源分配,实现即插即用。

PCI的地址空间有3类:存储器、I/O和配置地址空间。存储器空间和I/O空间同以前的ISA总线规范相同,而配置空间是PCI所特有的。配置空间使系统处理器能够枚举PCI总线上的各种设备,并根据设备要求自动配置存储器和I/O的地址空间。操作系统在自检的过程中检测所有PCI设备,读取设备的配置信息,并给每一设备分配系统资源,如中断、I/O空间、存储器空间等。在PCI系统结构中,为每个PCI都提供了256个字节(至少是前64个字节)的配置空间,这256个字节的配置空间中前64个字节称为头区域,是每一个PCI设备都应该实现的,他的主要功能是识别PCI接口设备,以及PC访问板卡的方式等。其余的192个字节根据不同的PCI设备有所不同。

3 PCI接口芯片的选择

PCI接口电路至少实现如下功能:

(1) 高速的地址产生单元;

(2) 地址译码及命令译码单元;

(3) 标准配置寄存器(64个字节)、PCI总线逻辑接口单元、用户设备逻辑接口、数据缓冲区等。

所以若用FPGA芯片直接设计PCI接口则难度大且开发周期长,而专用的PCI接口芯片可以实现完整的PCI主控模块和目标模块接口功能,将复杂的PCI总线接口转换为相对简单的接口。

目前常用的PCI专用接口芯片有PLX公司PCI90XX系列,AMCC公司S59XX系列,南京沁恒公司的CH365通用PCI接口芯片。其中南京沁恒公司的CH365是国内自主开发的PCI总线接口芯片,CH365将32位高速PCI总线转换为简便易用的类似于ISA总线的8位主动并行接口,并提供独有的本地硬件地址请求功能,适合制作低成本的基于PCI总线的计算机板卡,以及将原先基于ISA总线的板卡升级到PCI总线上。另外CH365价格便宜、使用方法简单,非常适合用于短周期、低成本PCI接口卡的制作。其一般应用框图如图1所示。

CH365是一个连接PCI总线的通用接口芯片,可将32位高速PCI总线转换为主动8位并行接口并提供16位地址,可以进行I/O及存储器的读和写,可以设定PCI板卡的设备标识。

CH365非突发存取的实测速度可达7 MB/s,写脉冲的宽度从30~240 ns可选;自动分配I/O基址,I/O空间占用256个,其中偏移00~EFH共240 B的标准的本地I/O端口,而F0~FF为CH365内部使用的寄存器,对I/O端口操作只须I/O基址加上偏移量;通过该接口直接升级ISA的I/O板卡到PCI总线,完全不需要修改原ISA卡的相关软件;直接映射支持容量为32 kB的存储器SRAM或者扩展ROM(BootROM),偏移地址0000~7FFFH;提供两线串行主机接口,可以挂接类似24C0X的两线串口E2PROM器件;支持Windows 98/ME/2000/XP,通过DLL提供应用层API。

CH365的地址引脚A15~A0用于提供相对于基址的偏移地址,引脚D7~D0为双向数据引脚,与设备相连。IOP_RD用于提供I/O读选通信号,IOP_WR用于提供I/O写选通信号,MEM_RD用于提供存储器读选通信号,MEM_WR用于提供存储器写选通信号,上述引脚均为低电平有效。与PCI总线相连的引脚直接与PCI总线对应。

4 PCI接口卡的设计和实现

4.1 原ISA接口卡简介

原ISA总线接口卡是一个多路数据采集板,接口卡所采集数据由板上单片机与ISA总线通过双口RAM进行数据交换。双口RAM的11位地址线与ISA总线的低口位地址线相连作为局部地址;ISA总线接口板的高位地址与GAL168V芯片相连,由预先设置在GAL168V芯片中的地址作为接口板基址;双口RAM的左数据线通过一个8路总线收发器隔离后与ISA总线数据线相连,右地址线、数据线与单片机相连。

原ISA总线接口卡总线接口原理框图如图2所示。

4.2 PCI接口卡的设计和实现

为了实现PCI总线接口需在原ISA接口板上加上CH365芯片及其周边电路。CH365芯片与PCI总线的连接符合PCI总线规范,而CH365芯片提供的本地总线接口端与ISA总线接口类似。为了减少总线接口改变带来的改动,本文利用CH365芯片的本地硬件地址功能设定接口卡的本地硬件地址。

4.2.1 本地硬件地址功能的实现

CH365提供一种可以由板卡制造商选定PCI设备I/O口地址的方法,即本地硬件定址,其原理是将PCI设备的部分I/O口地址译码,通过外围的二级译码电路来实现。外围的二级译码电路比较简单,与ISA总线的I/O译码电路类似,CH365将PCI总线I/O操作地址同步提供给外围电路,当外围电路对地址译码匹配后,向CH365请求本地硬件定址,再由CH365请求PCI总线在该特定I/O口地址范围内进行读写操作。

为启用CH365提供的本地硬件定址功能,需将CH365局部数据总线端中D4线弱下拉接地(即设定值=0),以设置CH365工作于本地硬件定址模式。外围二级译码电路可由GAL16V8实现。

4.2.2 双口RAM的读写

CH365的本地地址线和数据线端与双口RAM相连。双口RAM允许2个CPU同时读取任何存储单元(包括同时读同一地址单元),但不允许同时写或一读一写同一地址单元,否则就会出现写入值和读出值不是期望值的混乱状态。虽然双口RAM本身带有BUSY控制信号来协调两端的访问,但BUSY信号脚要求与两侧CPU的READY线相连,而CH365并不具有READY信号线,因此,需要引入仲裁逻辑控制模块。常用的双口RAM解决地址竞争的途径有:令牌传递法、基于邮箱机制的INT中断法以及插入等待周期的BUSY法等。在本系统中采用第二种方法。

基于邮箱机制的INT中断法的基本思想是:给每个端口分配一个地址作为邮箱,比如本系统可以令CH365使用00H,单片机使用8000H,这两个地址用来装载作为分配两端口RAM使用权的依据数据。具体约定为:当左端口CH365写地址单元00H时,通过逻辑器件可实现右中断DSP INT(DSP中断)为低,向DSP发出中断清求,DSP读地址单元00H时,DSP INT为高,复位CH365发出的中断请求。同理,当右端口写地址单元8000H时,左中断INT REQ(CH365中断)为低,可向左端口发出中断请求;而当左端口读地址8000H时,INT_REQ为高,复位DSP发出的中断请求。当信箱内容为00时,表示正在使用该方端口;当信箱内容为FFH时,表示结束使用该端口。因此,双方在对端口的其他单元进行读写操作开始时,需要向邮箱中写入00H,操作结束,写入FFH。如果没有发生争用,则直接进行读写操作,否则,慢的一方产生中断,并查询对方邮箱,直到对方邮箱内容为FFH。具体实现可借助CPLD来完成。

4.2.3 PCI接口卡设计中应注意的问题

PCI接口作为高频数字电路,电磁兼容设计尤为重要,在设计PCB板时需要参考PCI总线规范。CH365的PCI信号的走线长度应小于35 mm,尽量走弧线或者45°线,信号布线尽量在元件面,在PCB背面保留大面积接地覆铜。CH365芯片有3对电源引脚,在制作印制板时,应在每对电源附近放置高频消磁退耦电容。

4.2.4 PCI接口卡的硬件电路原理

PCI接口卡的硬件电路原理框图如图3所示。

5 结 语

本文所述,通过增加一片CH365芯片,采用硬件地址方式所设计的PCI接口卡,可获得和原ISA卡完全相同的性能。而用户计算机控制程序不用作任何修改,仅仅在PCI板卡插入计算机过程中,添加CH365芯片的驱动程序而已,从而避开繁杂的PCI总线接口规范标准,大大简化了PCI接口卡设计的难度,同时也极大地降低了PCI卡开发和制造的成本,具有较好的市场前景。本文所升级的PCI接口卡已经实际使用,功能正常,取得了很好的效果。

关键字:地址  存储  突发  译码 引用地址:基于CH365芯片的PCI总线接口卡的设计与实现

上一篇:铁电存储器在多CPU自动识别控制系统中的应用
下一篇:基于TMS320F2812集中供电系统的串口通信设计

推荐阅读最新更新时间:2024-03-30 21:24

​江波龙电子蔡华波:如何构建存储的物联网体系?
在数字时代,一切能被存储下来的个人信息资料都是宝贵财富。如何以合理的成本代价,让个人及行业信息在更安全、更省心的状态下长期保存成为众多存储终端厂商关注的焦点。 2021年9月14日,江波龙电子携旗下高端消费类存储品牌Lexar雷克沙和行业类存储品牌FORESEE一同亮相2021中国闪存市场峰会(CFMS),并荣获2021年度“最佳品牌拓展奖”。江波龙电子也在同期发布了一款存储物联网新形态产品——雷克沙时光机M2(以下简称为M2)。 江波龙电子董事长蔡华波 会后,江波龙电子董事长蔡华波先生接受了《与非网》记者的独家专访,除了详细介绍M2的台前幕后故事外,我们重点讨论了两个话题:1.如何建立一个存储的物联网体系?2.如
[嵌入式]
​江波龙电子蔡华波:如何构建<font color='red'>存储</font>的物联网体系?
关于STM32主存储块擦除编程操作的一些疑问
1.为什么每次都要检查BSY位是否为0? 因为BSY位为1时,不能对任何FPEC寄存器执行写操作,所以必须要等BSY位为0时,才能执行闪存操作。 2.如果没有擦除就进行编程,会出现什么结果? STM32在执行编程操作前,会先检查要编程的地址是否被擦除,如果没有,则不进行编程,并置FLASH_SR寄存器的PGERR位为1。唯一例外的是,当要编程的数据为0X0000时,即使未擦除,也会进行编程,因为0X0000即使擦除也可以正确编程。 3.为什么操作后要读出数据并验证? STM32在某些特殊情况下(例如FPEC被锁住),可能根本就没有执行所要的操作,仅通过寄存器无法判断操作是否成功。所以,保险起见,操作后都要读出所
[单片机]
寄存器,存储器,RAM,ROM有什么区别?
这些都是比较抽象的专业名词了,特别是寄存器,很多人在学单片机的时候对这个一脸懵逼,寄存器到底是个啥玩意? 其实不用很深刻的理解它到底是什么,你只需要知道通过配置寄存器的值,就可以把外设用起来。 我做单片机开发的这10几年,接触寄存器非常多,比如单片机有寄存器,很多外围芯片也有寄存器(EEPROM、FLASH、时钟芯片等),只要你掌握其中一个,其它的都可以触类旁通。 就像密码锁一样,设置正确的密码,锁就会打开,寄存器也是一样,设置正确的值,芯片资源就能为你所用。 下面更加全面地介绍下它们之间的区别: 一、寄存器 在单片机应用上,寄存器(register)通常用于存储程序的运行时状态,例如程序计数器(Program Counter,P
[单片机]
STM32处理器存储空间布局解析
一、Cortex-M3支持最大4GB的存储空间,其地址映射关系如下图 二、存储器映射实例:256KB Flash 48KB SRAM IROM1为片上程序存储器,即片上集成的Flash存储器,对该处理器Flash大小为256KB,即0x40000 IRAM1为片上数据存储器,即片上集成的SRAM存储器,对该处理器Flash大小为48KB,即0xC000 片上SRAM的起始地址是0x20000000,这是由Cortex-M3内核决定的,从0x20000000开始的512KB存储空间内都可以SAM,即所谓的”大框架“,但具体的SRAM大小由半导体厂商来决定,因为SRAM成本较高一般容量都不是很大。
[单片机]
STM32处理器<font color='red'>存储</font>空间布局解析
华邦对存储市场不悲观,未来将机动调整产能
芯科技消息(文/雷明正)存储器大厂华邦电今(29)日举办财报会,不受主流存储器市场波动影响,华邦电业绩维持稳健增长,第3季营收为136.8亿元(新台币,下同),净利达28.4亿元,创下18年来单季获利新高,每股纯益0.71元。不过华邦总经理詹东义也对短中期展望审慎,他表示,未来要观察库存,大陆内需与前几大客户下单状况在未来2-3季很关键。 詹东义表示,第3季存储器和价格比上一季要来的稳定,表现也较平缓,但大陆市场需求比较弱,价格上压力较大,SLC NAND Flash虽也同样有价格压力,不过需求还是存在的。他透露,第3季产能处于满载的状态,价格表现也稳定,主要压力是来自于NAND Flash,因此第4季要视市场情况来调整产能,尤其
[手机便携]
STM32 DMA通道外设基地址的配置
简介:看了许多资料都没有讲如何配置DMA通道外设基地址 ADC 规则数据寄存器(ADC_DR)的地址偏移:4Ch #define ADC1_DR_Address ((u32)0x4001244C) 就是ADC1的外设基地址(0x4001 2400)加上ADC数据寄存器(ADC_DR)的偏移地址(0x4c)计算得到的。 Example: /************************************************************************************ * 文件名 :main.c * 描述 :串口1(USART1)向电脑发送当前ADC1的转换电压值 * 库版本 :ST3.5.0
[单片机]
数据总线DB、地址总线AB、控制总线CB
数据总线DB 用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。 地址总线AB 是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接
[嵌入式]
缩短上市时间 集成开发环境成MCU关注点
随着MCU产品市场需求不断推陈出新,整机厂商面临的主要课题就是:产品的生命周期越来越短,同一规格的产品数量不断减少,多品种少量生产的市场需求日益强烈。在此情况下,MCU供应商仅仅提供参考设计已经不能满足整机厂商的要求,集成开发环境被引入产品开发中就显得尤为重要了。 紧贴用户需求 集成开发环境(Integrated Developing Environment,简称IDE)是一个综合性的工具软件,它把产品设计全过程所需的各项功能集合在一起,为设计人员提供完整的服务。集成开发环境并不是把各种功能简单地拼装在一起,而是把它们有机地结合起来,统一在一个图形化操作界面下,为设计人员提供尽可能高效、便利的服务。 近几年,客户(整机厂商)
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved