单片机总线接口芯片及其ISA模式应用

发布者:勾剑寒最新更新时间:2012-02-15 来源: dzsc关键字:单片机  总线接口  ISA模式 手机看文章 扫描二维码
随时随地手机看文章
    引 言 

    PCI(Peripheral Component Interconnect)总线,即外围部件互连总线,是一种先进的高性能32/64位地址数据复用局部总线。PCI总线与处理器和时钟频率无关,可以提供高达132MB/s的数据传送速率;它具有严格的规范,只要符合PCI规范的扩展卡插入任何PCI系统就能可靠地工作。但由于PCI总线协议的复杂性,其接口的实现比VESA、ISA和MCA等总线要困难得多。 

    目前,开发PCI接口设备有两种方法:一种方法是采用可编程逻辑芯片,它的最大好处是比较灵活,用户可以根据自己的需要开发出适合于特定功能的芯片,而不必实现PCI的全部功能。现在有许多生产可编程逻辑器件的厂商,如Xilinx的LogiCore和Altera的AMPP都提供经过严格测试的PCI接口功能模块,用户只要进行组合设计即可。另一种常用的方法是使用专用接口器件,通过专
用芯片可以实现完整的PCI主控模块和目标模块的功能,将复杂的PCI总线接口转换为相对简单的用户接口,用户只要设计转换后的总线接口即可。 

    专用接口芯片具有较低的成本和通用性,能够有效降低接口设计的难度,缩短开发时间。现有的PCI接口芯片主要有AMCC公司的AMCCS59xx系列和PLX公司的PCI90xx系列。在PLX系列产品中,PCI9052是一款常用的PCI总线目标接口芯片,该芯片最大的特色是带有一个ISA接口,通过它可以实现ISA总线到PCI总线的无缝连接,这为目前仍存在的ISA插件移植到PCI提供了极大的方便。 

    利用PCI9052的ISA模式进行PCI的开发可以简化设备开发过程,但难度还是较大。设计者不仅要理解掌握手册中的要点,还要学习硬件设计和软件设计的方法和过程。为了让大家能够系统地了解利用PCI9052的ISA模式进行PCI板卡开发的过程和方法,本文从硬件设计、配置寄存器的编写、板卡调试和驱动程序的编写等方面介绍了PCI9052的开发过程。

    2 PCI9052的ISA接口模式 

    2.1 基本特点 

    PCI9052是PLX公司继PCI9050之后推出的低成本PCI总线接口芯片,它符合PCI2.1规范,可作为PCI总线目标设备实现基本的传送要求;它有5个局部地址空间和4个局部设备片选信号,局部总线与PCI总线时钟相互独立运行。通过配置EEPROM的内容可以将PCI9052设定为ISA接口模式,通过8位或16位内存或I/O映射可直接使PCI总线与ISA总线相连,从而将ISA总线快速地转换到PCI总线上。 

    在我们的数控测井系统中,原来的通信控制模块是基于ISA总线的插件,端口地址为0X100~0X10F,总线宽度是16位,可以实现输入输出,有中断功能。现在,我们利用PCI9052芯片的ISA模式对原来的板卡进行升级改造,使原来的板卡在做少量改动的情况下可以插在PCI总线插槽中正常工作。 

    2.2 引脚介绍及连接 

    在不同的模式下,PCI9052的部分引脚有不同的定义和功能。工作在ISA模式下,其主要引脚如图1所示。

主要引脚


    PCI9052硬件连接正确与否直接关系到芯片能否正常工作,某些引脚处理不当往往会引起芯片工作不正常或死机。在图1中,9052左上方的信号和PCI信号相连,左下方信号和串行EEPROM相连,右边的信号和局部总线信号相连,也就是和ISA总线信号相连。 

    PCI端主要信号完全符合PCI规范要求,直接和PCI总线上对应的引脚相连即可。 ISA端连接如下:在我们的板卡中由于只涉及到I/O,且为16位宽的数据,因此,MEMWR#、MEMRD#、SBHE#和BALE信号可以不用。

L    AD〔15:0〕是16位的数据总线。LA〔23:2〕和ISAA〔1:0〕共同组成ISA的地址总线,对于8位的数据总线,ISAA〔1:0〕相当于LA〔1:0〕,它们一起进行地址译码。而对于16位的数据线,每次读写两个字节,这时ISAA〔0〕不用,ISAA〔1〕和LA〔23:2〕一起进行地址译码。需要注意的是,并不是所有的地址线都要进行地址译码,这里要根据板卡上实际I/O口空间的大小选择译码地址线的数目。对于我们的板卡,LA〔3:2〕和ISAA〔1〕地址译码是必需的(ISAA〔1〕为低位),当然,所有的地址线都参加地址译码也是可以的。 

    IOWR#和IOWD#是局部端口读写信号。LCLK是ISA端时钟信号,按芯片要求外接8MHz的时钟。LRESET#是9052芯片上电时PCI端复位后所发出的对ISA端进行复位的信号。在ISA模式下,该信号输出高有效。 

    LINTi1和LINTi2是局部总线中断输入信号,这里,我们只

用到LINTi1信号,由于9052内部没有对这两个信号进行上拉或下拉处理,因此,在外部将LINTi2上拉或下拉到一个确定的状态。 

    NOWS#是无等待标志信号,此引脚上拉或接地可以减少等待的时钟数。LRDY#是局部准备就绪信号,如果局部芯片没有提供该信号,一般对它进行下拉或接地处理。CHRDY是局部通道准备好信号,一般要进行上拉处理。LHOLD是局部总线请求信号,应该进行下拉或接地处理。MODE是模式选择信号,由于我们使用的是ISA非复用模式,因此该引脚接地。 [page]

    在设计电路板时,要严格遵循PCI规范。电源和地线要尽可能宽且电源滤波要良好,在芯片的每个电源引脚最好接0.1μF的滤波电容。由于PCI时钟信号的一半要靠反射波来提升,因此,时钟信号CLK走线长度近似为2500 mil。prstn1和prstn2两者必须有一个接地,主板就是靠这两个信号来判断这个插槽上是否有卡的。用作上拉或下拉的电阻一般取值2.2 k欧姆即可。一般来说,PCI板卡推荐做4层板,其实只要布线合理做两层板也是可以的。 

    串行EEPROM端信号有以下几种:时钟信号(EECK)、读数据信号(EEDO)、写数据信号(EEDI)和片选信号(EESC),分别和EEPROM相应管脚相连即可。 

    2.3 串行EEPROM的配置 

    与ISA总线相比,PCI总线支持三个物理空间:存储器地址空间、I/O地址空间和配置空间。配置空间是PCI所特有的一个空间,所有的PCI设备必须提供配置空间。串行EEPROM存储了PCI9052重要的配置信息,如设备号DID、制造商号VID、子设备号SDID、子制造商号SVID、中断号、设备类型号、局部空间基地址、局部空间描述符、片选响应以及局部响应控制CNTRL等信号。EEPROM的内容非常重要,它直接关系到整个板卡能否正常工作,在设计时要非常注意。 

    系统加电时,通过PCI的RST复位以后,PCI9052首先检测EEPROM是否存在。如果检测到EEPROM首字不是FFFFH,PCI9052将依次读取EEPROM的内容来初始化内部寄存器。PCIBIOS根据配置寄存器的内容进行系统资源分配,这样,整个PCI设备的资源才不会发生冲突,从而实现了PCI总线的即插即用的特性。 

    PCI9052的内部寄存器为总线接口的设计与实现提供了最大的灵活性,这些寄存器可以分为两类:PCI配置寄存器和局部配置寄存器。PCI配置寄存器有6个基地址寄存器,这些基地址是在系统中的物理地址。其中,基地址0和基地址1分别是以内存方式和I/O方式访问局部配置寄存器的基地址,基地址2和基地址3分别映射到局部基地址0和局部基地址1。局部总线配置寄存器用于设定局部总线的工作方式,如基地址和地址范围等。实际上,9052在PCI和ISA总线之间起到一个翻译作用,要访问ISA端地址只需对PCI端基地址进行操作就可以了。对于我们的设计,EEPROM的值及装入顺序如表1所示。
EEPROM的值及装入顺序

    表1中,DID和VID是PLX公司的标志,一般不能更改。操作系统就是通过DID、VID、SDID、SVID及设备类型码来识别不同厂家的设备的。 

    在ISA模式下,局部空间1必须映射为I/O空间,局部空间0必须映射为内存空间。另外要注意:在ISA模式下虽然不存在片选信号,但我们必须设置它,使它的值和局部空间1的基地址和范围相匹配,否则,局部地址空间无法响应PCI的控制指令。同样,如果用到局部地址空间0,也要设置它的值。 

    对于PCI9052芯片,它的配置寄存器的内容是在芯片复位时通过串行EEPROM加载的。在ISA模式下,串行EEPROM一定不能省略,我们一般使用松下公司的NM93CS46或与之兼容的存储器。配置寄存器的内容编写完以后,可以用编程器写入EEPROM中。另外,也可以通过主机在线烧写,但由于各种原因,成功率很低。

    3 板卡调试          

    板卡做好以后,就可以插入主机板的PCI插槽中进行调试。在调试的过程中,为了跟踪信号的变化通常要用到数字示波器,另外,还需要一个软件调试工具。PLX公司提供了一个905X的专用调试软件PLXmon,我们可以从它的网站免费下载。PLXmon包括以下功能:PCI总线的探测与选择;配置寄存器的检查和修改;内存空间的显示、修改和填充;EEPROM内容的读写等。利用这个工具,我们可以很清楚地看到EEPROM的内容以及PCI配置寄存器和局部端配置寄存器的内容,另外,用户还可以进行内存和I/O端口的读写。 

    此外,我们也可以用WinDriver或SoftICE软件进行板卡调试,但总的来说,使用起来都不如PLXmon方便。有了开发工具,设计者就可以根据板卡的具体要求进行调试了。

    4 驱动程序的编写 

    板卡调试成功以后就可以编写驱动程序了。目前,编写驱动程序最常用的工具是VtoolsD和WinDriver,它们都是专门的驱动开发工具。尤其是WinDriver,开发人员不需要掌握WINDOWS驱动编程的知识,利用它的向导工具,能很快地开发出高质量的驱动程序。 

    在Windows9x环境下,操作系统统一管理硬件资源,出于安全性考虑,ring3层应用程序不能直接访问硬件(I/O端口访问除外),因此,必须编写运行在ring0层的虚拟设备驱动程序(VxD)来响应系统底层的中断。如果板卡只有I/O操作,而没有用到中断和内存操作,可以不用编写驱动程序,直接在应用程序里实现输入输出就可以了。编程的方法是先找到板卡,再找到卡中与我们用到的局部空间相对应的PCI基地址,然后就可以根据要求对这个基地址进行操作了。如果在WINDOWS98以上版本的操作系统下,就要编写WDM设备驱动程序了。 

    5 结束语 

    由于PCI总线数据吞吐量大,传输速率高,在微机接口设计中,基于PCI总线的设计成为主流。PCI9052是一款优秀的PCI接口芯片,设计者用它可避免直接面对复杂的PCI总线协议,降低了设计难度,从而使用户可以集中精力解决具体的应用问题,缩短了开发周期。实践证明,PCI9052为开发作为总线接口目标设备的产品,特别是对基于ISA总线的接口板向PCI的转换提供了极大的方便。

关键字:单片机  总线接口  ISA模式 引用地址:单片机总线接口芯片及其ISA模式应用

上一篇:大容量NORFlash与8位单片机的接口设计
下一篇:计算机串口与单片机通讯测试系统的实现

推荐阅读最新更新时间:2024-03-16 12:53

基于PIC单片机的智能IC卡燃气表电控系统设计
    摘要: 给出了一种PIC单片机为核心的智能IC卡燃气表电控系统的设计,介绍了该系统的控制模式、电控系统的硬件电路构成、系统软件设计及其实际应用情况。     关键词: PIC单片机  智能IC卡燃气表  电控系统     智能IC卡燃气表是一种根据用户IC卡购气量实现自动计量计费、自动控制用气的民用高技术产品,具有传统人工抄表收费式燃气表无可比拟的优越性。当前,随着国家“金卡工程”的深入开展 和开发大西北“西气东输”计划的正式启动,智能IC卡燃气表已 呈现出十分广阔的应用前景。本文介绍了该产品的核心技术--基于PIC单片机
[应用]
MSP430单片机的时钟信号
  MSP430的3种时钟信号:MCLK系统主时钟;SMCLK系统子时钟;ACLK辅助时钟。      (1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。      (2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。      (3)ACLK辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但ACLK只能由LFXT1进行1、2、4、8分频作为信号源。      PUC复位后,MCLK和S
[单片机]
51单片机ROM的一些重地址
51单片机ROM的一些重地址 0000H 单片机复位后的入口地址 (共 3 字节) 00003H 外部中断0的中断服务入口地址 (共 8 字节) 000BH 定时/计数器0的溢出中断服务入口地址 (共 8 字节) 0013H 外部中断1的中断服务入口地址 (共 8 字节) 001BH 定时/计数器1的溢出中断服务入口地址 (共 8 字节) 0023H 串行口的中断服务入口地址 在程序编写时如果要用到相关中断,注意不要用无关代码段将其覆盖
[单片机]
MSP430单片机的AD转换
ADC12模块中是由以下部分组成:输入的16路模拟开关(外部8路,内部4路),ADC内部电压参考源,ADC12内核,ADC时钟源部分,采集与保持/触发源部分,ADC数据输出部分,ADC控制寄存器等组成。 四种采样模式: (1)单通道单次转换模式 (2)序列通道单词转换模式 (3)单通道多次转换模式 (4)序列通道多次转换模式 个人觉得(3)模式应该是使用较多的, 对选定的通道进行多次转换,直到关闭该功能或ENC=0。进行如下设置: x=CSStartAdd,指向转换开始地址 ADC12MEMx存放转换结果 ADC12MCTLx寄存器中定义了通道和参考电压 在这种模式下,改变转换模式,不必先停止转换,在当前正在进行的转换结束
[单片机]
MSP430<font color='red'>单片机</font>的AD转换
基于FPGA和MCU的CAN-VME总线转换设计
为了扩展VME总线和CAN总线的应用范围,充分利用两种总线的不同传输特点,采用了模块设计方法,提出一种基于FPGA和MCU的总线转换方案。该方案给出了FPGA与上位VME总线部分的VME总线接口设计,利用MCU控制CPLD扩展的多通道CAN节点完成CAN总线部分的设计,还给出软件实现上的重点、难点和流程。实现了两种不同总线的转换,满足了工业环境对两种总线混合使用的要求。 CAN(Controller Area Network控制器局域网)以其高性能、高可靠性以及独特的设计等优点,为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的支持。CAN总线突出的可靠性、实时性和灵活性显示了它突出的优势,成为公认的最有前途的总线
[单片机]
基于FPGA和<font color='red'>MCU</font>的CAN-VME总线转换设计
基于单片机通用引脚的软件UART设计
引言 随着单片机应用技术的不断深入,由单片机构成的多机系统取得了长足的发展,多个单片机之间以串口进行数据传输,构成复杂的主从式通讯网。在多机系统中的有一些单片机承担着复杂的通讯任务,当计算机的串口不能满足需要,就必须对串口进行扩展。如多参数医用监护仪、小区防盗报警系统、RS485总线控制系统等。 目前扩展串口的方法主要有以下方法, ①、采用串口扩展芯片实现,如ST16C550、ST16C554、SP2538、MAX3110等,虽然成本较高, 但系统的可靠性得到了保证,适用于数据量较大、串口需求较多的系统;②、采用分时切换的方法将一个串口扩展与多个串口设备通信,分时复用的方法成本低, 但只适用于数据量不大的场合, 并且只能由这个
[单片机]
2023,狂飙的汽车MCU
“传统汽车单车用量在70颗左右,电动汽车单车用量有望超300颗。” “芯片短缺风暴,站在中心。” “缺芯涨价潮时,某些型号涨价超几十倍,几十块变成上千块。” 它,就是MCU 阅读本文,你将了解: 1. MCU是什么? 2. MCU用在车上哪些地方? 3. MCU有哪些玩家?实力如何? 01、MCU的成长史 MCU(Microcontroller Unit),微控制器,它有一个大家熟知的名字:单片机。 它“真香”的地方在于,把一套基础的计算机系统搬到了一块芯片上,内部包含减配版CPU、RAM、ROM、I/O、计数器、串口等,虽然性能肯定不及广泛意义上的一台计算机,但它低功耗、可编程又灵活,因此
[汽车电子]
2023,狂飙的汽车<font color='red'>MCU</font>
一文详解80C51单片机的指令系统
指令是指示计算机执行某种操作的命令,计算机能识别执行的只能是二进制代码,以二进制代码来描述指令功能的语言,称为机器语言。 由于机器语言不便于人们识别,记忆,理解和使用,因此便对每条机器语言指令用助记符号来形象表示,这就便形成了汇编语言。 一条指令是机器语言的一个语句,包括操作码字段和操作数字段。一台计算机所具有的全部指令的集合,称为这台计算机的指令系统。 不同的微处理器,其指令系统一般是不同的。 80C51单片机指令系统共有111条指令,具体特点如下: 1)执行时间短,单机器周期指令(64条),双机器周期指令(45条),而四机器周期指令只有2条; 2)指令编码字节少,单字节指令(49条),双字节指令(45条)和最长的三字节
[单片机]
一文详解80C51<font color='red'>单片机</font>的指令系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved