文档详情

总线与系统通讯讲义

壹****1
实名认证
店铺
PPT
1.58MB
约86页
文档ID:590886775
总线与系统通讯讲义_第1页
1/86

总线与系统通讯讲义总线与系统通讯讲义 v第一节第一节    总论总论v第二节第二节    串行异步通信总线串行异步通信总线v第三节第三节    通用串行总线通用串行总线USBv第四节第四节    Ethernetv第五节第五节    IIC总线总线v第六节第六节    SPI总线总线v第七节第七节    ISA总线总线v第八节第八节    PCI总线总线 Southeast University 总线与系统通讯讲义总线与系统通讯讲义 第一节第一节 总论总论v定义:总线是连接系统有关部件的一组信号线,是定义:总线是连接系统有关部件的一组信号线,是系统中用来传送信息代码的公共通路系统中用来传送信息代码的公共通路v片总线片总线(Chip Bus,,C-BUS):又称元件级总线,:又称元件级总线,把部件内各种不同器件连接在一起的信号线把部件内各种不同器件连接在一起的信号线IIC,,SPIv内部总线内部总线(Internal Bus,,I-BUS):即系统总线,:即系统总线,用于微机各部件之间的信息传输用于微机各部件之间的信息传输。

ISA,,PCIv外部总线外部总线(External Bus,,E-BUS):又称通信总:又称通信总线,用于设备之间或微机与设备之间的通信如线,用于设备之间或微机与设备之间的通信如USB,,232,,485,,ethernet Southeast University 总线与系统通讯讲义总线与系统通讯讲义 第二节第二节 串行异步通信总线串行异步通信总线v2.1  UART与与RS-232C,,RS-485 Southeast University        UART((Universal Asynchronous Receive/Transmitter))通用异步收通用异步收发器发器在异步串行通信总线中,在异步串行通信总线中,RS-232C和和RS485是比较广泛的两种总线标准是比较广泛的两种总线标准这两种标准只是在电平标准上作了一定的约定这两种标准只是在电平标准上作了一定的约定v2.2  串行异步通信的数据格式串行异步通信的数据格式110000 1 0 1110 0 0起始位数据位0低高校验位空闲位停止位完整一帧 Southeast University RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:0~20Kbps。

RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定 逻辑“1”=-3V~-15V “0”=+3V~+15V 与TTL逻辑电平不一样,可用TTL/EIA电平转换器进行,如MC1488,MC1489v2.3  EIA-RS-232Cv2.3.1  RS-232C简介简介 Southeast University 采用EIA电平比TTL电平具有更强的抗干扰性能 另外,MAX232省电可连接二对收/发线,只用单电源1)连接器(Connector) 常用二种:①DB-25型 25脚只用9个信号(2个数据线,6个控制线,1个地址)如图:1234DB-25型连接器5678911132522201814发送电流(-)发送电流(+)DCDGNDDSRCTSRTSRXDTXD(-)接收电流(+)接收电流 Southeast University123456789DSRRTSCTSRIDCDRXDTXDDTRGNDDB-9型连接器 ②DB-9型 9针,9针全用,如右图 RS-232C仅仅在信号传输中电平的要求等物理方面作出了规定,它构成协议的一个部分。

而数据传输的字节内容所代表的含义也是协议的重要部分 2.3.2  接口芯片及典型电路接口芯片及典型电路           接口芯片有:接口芯片有:TTL→RS-232C::MC1488,,75188;;RS-232C→TTL::MC1489,,75189;;TTL↔RS-232C::MAX232,,ICL232等等 Southeast University Southeast UniversityMC1488MC1489RS-232TTLEIA电平+15V+15VTTL+15V 利用TTL→RS-232C接口芯片MC1488和RS-232C→TTL接口芯片MC1489实现TTL与RS-232C相互转换的一种电路如下: Southeast University2.4.1  电气特性电气特性 总线只有信号线A和B,当电平A-B>200mV时,线路上表示传输信号“1”;当B-A>200mV时,线路上表示传输“0”仍然遵循串行异步通信数据的传输格式,这样信号就可以以差分方式得到长距离扩展而且总线数目少,连接灵活方便 2.4  RS-485简介简介 RS-232C标准总线系统只能一对多通信,而RS-485标准则可以多机通信。

没有硬件上的主从约束,任何时刻所有挂在RS-485总线上的UART终端都在监听总线上的数据一旦与自身要求符合,立即开始通信否则丢弃所收到的数据 2.4.2  接口芯片及典型电路接口芯片及典型电路 MAX481、MAX483、MAX485、MAX487等是RS485总线的一些接口芯片,差别体现在半/全双工工作方式、数据传输速率、转换率限制、功耗关机、静态电流大小和总线上允许的收发器数目等 Southeast University Southeast University2.4.3  多机通讯与硬件连接多机通讯与硬件连接 多机通讯系统可以设计成全双工通讯和半双工通讯半双工通讯一般采用多机通讯系统可以设计成全双工通讯和半双工通讯半双工通讯一般采用主机查询方式,分机只有在主机允许下才能驱动总线,使用完总线之后立即释放主机查询方式,分机只有在主机允许下才能驱动总线,使用完总线之后立即释放总线在全双工通讯时,也是通常采用由主机查询的工作方式,需要与主机通讯总线在全双工通讯时,也是通常采用由主机查询的工作方式,需要与主机通讯的分机占有总线。

但要注意不要使多个分机同时长时间驱动主机接受总线的分机占有总线但要注意不要使多个分机同时长时间驱动主机接受总线 Southeast University2.5     设计指南设计指南2.5.1  MCU软件设计软件设计 对于一个基于对于一个基于UART的通讯控制系统,下位机的编程主要是对的通讯控制系统,下位机的编程主要是对UART进行编程进行编程在单片机作为从机的应用中,由于单片机一般通过内部的特殊功能寄存器在单片机作为从机的应用中,由于单片机一般通过内部的特殊功能寄存器((SFR,Special Functional Register)对)对UART管理,所以从实现的角度来说,管理,所以从实现的角度来说,编程重在熟悉串口工作寄存器(编程重在熟悉串口工作寄存器(TMOD,,SCON,,TI,,RI……according to 51))的使用以及串口中断服务程序的实现的使用以及串口中断服务程序的实现 2.5.2  PC软件设计软件设计        由由于于PC机机性性能能稳稳定定,,功功能能强强大大,,人人机机界界面面非非常常友友好好,,又又有有很很成成熟熟的的软软件件开开发发环环境境,,所所以以PC机机在在多多机机控控制制系系统统中中,,常常常常作作为为主主机机。

在在32位位Windows系系统统中中,,串串口口和和其其他他通通讯讯设设备备一一样样是是作作为为文文件件来来处处理理的的串串口口的的打打开开,,关关闭闭,,读读写写所所用用的的函函数数和操作文件的函数完全一致如和操作文件的函数完全一致如•CreateFile()()用于打开串口用于打开串口•CloseHandle()()用于关闭串口用于关闭串口•ReadFile()()读串口接收到的数据读串口接收到的数据•WriteFile()()向串口发送数据向串口发送数据•GetCommState(),(),SetCommState()()配置串口配置串口•GetCommProperties()()得到串口属性得到串口属性         另另外外,,Windows的的COM控控件件也也对对串串口口进进行行了了封封装装可可以以使使用用MSComm控控件件来来进行串口编程进行串口编程             PC与单片机通讯一定要注意波特率的一致,在与单片机通讯一定要注意波特率的一致,在PC端,如果打开串口的波特率端,如果打开串口的波特率不存在或者说系统不支持(指不存在或者说系统不支持(指API函数),系统并不会报错,而是会选择相近的波函数),系统并不会报错,而是会选择相近的波特率通讯。

这样有可能导致上位机和下位机通讯波特率不一致,通讯不成功特率通讯这样有可能导致上位机和下位机通讯波特率不一致,通讯不成功  参考资料参考资料 v《《PC机及单片机数据通信技术》机及单片机数据通信技术》   北京航空航天大学北京航空航天大学v《《PC接口通信与接口通信与Windows编程》编程》  精英科技精英科技 中国电力出版社中国电力出版社v《《MAX232,MAX485 Datasheet》》,v《《AT89C51 Datasheet》》v《《Visual C++串口通信技术与工程实践》++串口通信技术与工程实践》人民邮电出版社人民邮电出版社  Southeast University 总线与系统通讯讲义总线与系统通讯讲义 第三节第三节 通用串行总线通用串行总线 Southeast Universityv3.1     简介简介 通用串行总线就是Universal Serial Bus(USB),它是一种微机外设的接口其基本思路是采用通用连接器和自动配置及热插拔技术和相应软件,实现资源共享和外设的简单快速连接 它有以下技术优势:p使用USB不需要扩展插卡,无须开发最底层驱动程序。

p连接USB外设,带电即插即用p得到众多公司的支持p传输速率为 MBps-12MBps目前的则达到了480MBpsp通过Hub最多可支持127个外设 Southeast University3.2     USB系统组成系统组成ØUSB主控制器主控制器/根集线器(根集线器(USB Host Controller/Root Hub))负责产生传输处理主控制器对数据执行一个并行到串负责产生传输处理主控制器对数据执行一个并行到串行的转换,建立行的转换,建立USB的传输处理,并传给根集线器后在总线的传输处理,并传给根集线器后在总线上发送ØUSB集线器集线器(USB Hub)使使USB系统扩展它由控制器和中继系统扩展它由控制器和中继器组成,控制器管理主机和集线器之间的通信及帧定时,中继器组成,控制器管理主机和集线器之间的通信及帧定时,中继器负责连接的建立和断开器负责连接的建立和断开ØUSB设备分为设备分为Hub设备和功能设备两种功能设备就是接在设备和功能设备两种功能设备就是接在Hub上的外设,它能在总线上发送和接受数据或控制信息,是上的外设,它能在总线上发送和接受数据或控制信息,是完成某项具体功能的硬件设备。

完成某项具体功能的硬件设备3.2.1  USB硬件硬件 Southeast University3.2.2 USB层次拓扑图层次拓扑图  USBUSB采采用用一一种种层层次次化化的的新新结结构构,,该该结结构构以以集集线线器器为为USBUSB设设备备提提供供连连接接点点USBUSB主主控控制制器器包包含含集集线线器器,,是是系系统统中中所所有有USBUSB端端口口的的起起点点下下图图所所示示的的是是USB一一种种层层次次化化的的拓拓扑结构 3.3     USB系统的接口信号与电气特性系统的接口信号与电气特性3.3.1  USB接口接口              USB总线包括总线包括4根信号线,用来传送信号和提供电源其中,根信号线,用来传送信号和提供电源其中,D+(绿),(绿),D-(白)为信号线,它们是一对双绞线;另两根是电源线(红)和地线(黑)白)为信号线,它们是一对双绞线;另两根是电源线(红)和地线(黑)另外有些连接线还有屏蔽线绕在另外有些连接线还有屏蔽线绕在4根信号线的外侧根信号线的外侧  Southeast University Southeast Universityv3.3.2  电气特性电气特性        USB主机或根主机或根Hub对设备提供的对地电源电压为对设备提供的对地电源电压为V,设备吸,设备吸入的最大电流为入的最大电流为500 mA。

当当USB设备首次被主机检测到时,设设备首次被主机检测到时,设备吸入电流应小于备吸入电流应小于100 mA        USB设备有两种供电方式,自给方式(设备自带电源)和设备有两种供电方式,自给方式(设备自带电源)和总线供给方式总线供给方式USB Hub采用自给方式为了省电,采用自给方式为了省电,USB主机主机有一个独立于有一个独立于USB的电源管理系统的电源管理系统 3.4  传输类型传输类型 USB有有4种基本的传输类型:种基本的传输类型:控制传输控制传输控控制制传传输输是是双双向向的的,,控控制制传传输输主主要要是是做做配配置置设设备备用用,,也也可可以以做做设设备备的的其其他他特特殊殊用用途途每每个个USBUSB设设备备必必须须用用端端点点0 0来来完完成成控控制制传传送送,,它它用用在在当当USBUSB设设备备第第一一次次被被USBUSB主主机机检检测测到到时时,,与与USBUSB主主机机交交换换信信息息、、提提供供设设备备设设置置、、对对外外设设设设定定和和传传送送状状态态这这类类双双向向通信批量传输批量传输批批传传输输可可以以是是单单向向的的,,也也可可以以是是双双向向。

它它用用于于传传送送大大批批数数据据,,这这种种数数据据的的时时间间性性不不强强,,但但要要确确保保数数据据的的正正确确性性在在包包的的传传输输过过程程中中,,出出现现错错误误,,则则重重传传如如扫扫描描仪仪、、打印机中断传输中断传输中中断断传传输输是是单单向向的的,,且且仅仅输输入入到到主主机机它它用用于于不不固固定定的的、、少少量量的的数数据据传传送送当当设设备备需要主机为其服务时,向主机发送此类信息如鼠标、键盘需要主机为其服务时,向主机发送此类信息如鼠标、键盘等时传输等时传输等等时时传传输输可可以以是是单单向向的的也也可可以以是是双双向向的的,,用用于于传传输输连连续续性性、、实实时时的的数数据据传传输输速速率率固定,时间性强,传输中数据出错并不重传如数字音视频设备固定,时间性强,传输中数据出错并不重传如数字音视频设备 Southeast University Southeast University3.5  包种类、包格式及包交换包种类、包格式及包交换        通通过过USB总总线线的的传传输输包包含含一一个个或或多多个个交交换换((Transaction)),,包包是是组组成成USB交交换换的的基基本本单单位位。

包包主主要要有有标标志志包包((Token)),,数数据据包包((Data)),,握握手手包包((Handshake)),,特特殊殊包包((Special))USB总总线线上上每每一一次次交交换换至至少少需需要要前前面面的的三个包            所有的包都由该包的所有的包都由该包的PID域来表征包含义如下图:域来表征包含义如下图:  3.5.1  标志包标志包            USB总线是一种基于标志的总线协议,因此所有的交换总线是一种基于标志的总线协议,因此所有的交换都以标志包为首部标志包定义了要传输的交换类型有以都以标志包为首部标志包定义了要传输的交换类型有以下四类包:帧开始包(下四类包:帧开始包(SOF)、接受包()、接受包(IN)、发送包)、发送包((OUT)、设置包()、设置包(SETUP) Southeast University Southeast University 一个数据包包括一个数据包包括PID((Packet IDentifier)域、数据域和)域、数据域和CRC((Cyclic Redundancy Check)域三个部分。

域三个部分PID域用于确域用于确认数据包类型;数据域为具体的内容;认数据包类型;数据域为具体的内容;CRC域为循环冗余校验域为循环冗余校验       握手包由设备用来报告交换的状态,通过四种不同类型的握握手包由设备用来报告交换的状态,通过四种不同类型的握手包可以传送不同的结果报告握手包是由数据的接受方发向数手包可以传送不同的结果报告握手包是由数据的接受方发向数据的发送方的等时传输没有握手包该包只有一个据的发送方的等时传输没有握手包该包只有一个PID域       特殊包用于主机对低速设备通讯前,主机发给设备的预告包特殊包用于主机对低速设备通讯前,主机发给设备的预告包它由一个同步序列和一个全速传送的它由一个同步序列和一个全速传送的PID域组成之后等待域组成之后等待4个高个高速字节时间,以便速字节时间,以便Hub打开低速端口并准备接收低速信号打开低速端口并准备接收低速信号3.5.2  数据包、握手包、特殊包数据包、握手包、特殊包 Southeast University3.5.3 包交换包交换         所有所有USBUSB总线上的传输都是进行包的交换每次交换至少涉及到标志包、握手总线上的传输都是进行包的交换。

每次交换至少涉及到标志包、握手包和数据包包和数据包         USB设备之间的传输首先由主机发出标志包(设备之间的传输首先由主机发出标志包(Token又称令牌),标志包中有又称令牌),标志包中有地址码、端点号、传输方向和传输类型等信息其次是数据源向数据目的地发送的地址码、端点号、传输方向和传输类型等信息其次是数据源向数据目的地发送的数据包(数据包(Data)或者发送无数据传输的指示信息在一次交换中,数据包最多可以)或者发送无数据传输的指示信息在一次交换中,数据包最多可以携带的数据为携带的数据为1023B最后是数据接受方往数据发送方回送一个握手包,提供本次最后是数据接受方往数据发送方回送一个握手包,提供本次数据传输的反馈信息数据传输的反馈信息        在四种传输方式下,在四种传输方式下,分别有对应的包交换模式,分别有对应的包交换模式,以下是中断传输下的包交换以下是中断传输下的包交换示意:示意: Southeast University              当当USB设备在设备在USB总线上连接或移走时,主机通过总总线上连接或移走时,主机通过总线枚举过程确认和管理设备状态的变迁。

枚举过程说明如线枚举过程确认和管理设备状态的变迁枚举过程说明如下:下:1.USB设备连接到设备连接到Hub后,后,Hub通知主机发生设备接入事件设备进入连通知主机发生设备接入事件设备进入连接(接(Attached))状态Hub中与该设备相接的端口处于关闭状态中与该设备相接的端口处于关闭状态2.主机检测主机检测Hub,,确认设备接入事件和接入端口确认设备接入事件和接入端口3.主机将该端口使能,并传送一个主机将该端口使能,并传送一个RESET命令4.Hub持续送出持续送出100ms的的RESET信号,信号一结束,端口打开信号,信号一结束,端口打开Hub提提供供100mA的电流,的电流,USB进入上电(进入上电(Powered))状态,响应默认地址状态,响应默认地址5.在在USB设备收到唯一地址前,通过设备默认地址访问端点设备收到唯一地址前,通过设备默认地址访问端点0对应管道,对应管道,主机读取设备的描述器来获得设备默认管道的最大数据传输量设备主机读取设备的描述器来获得设备默认管道的最大数据传输量设备处于地址默认(处于地址默认(Default))状态6.主机给主机给USB设备分发一个唯一的地址,设备进入地址(设备分发一个唯一的地址,设备进入地址(Addressed))状态。

状态7.主机读取设备的配置信息主机读取设备的配置信息8.主机向设备分发一个配置值设备进入配置(主机向设备分发一个配置值设备进入配置(Configured))状态,所状态,所有端点准备就绪可以开始工作,设备可以使用有端点准备就绪可以开始工作,设备可以使用3.6 USB设备状态和总线枚举设备状态和总线枚举 状态转换图状态转换图 Southeast University 设计指南设计指南 v 使使设设备备实实现现USB通通讯讯功功能能通通常常有有两两种种方方式式,,使使用用具具有有USB控控制制器器的的MCU和和使使用用专专用用USB接接口口芯芯片片典典型型电电路路的的原原理理图图和和版版图图设设计计规规则则一一般般在产品使用文档中都会有所提及在产品使用文档中都会有所提及v 使使用用USB接接口口芯芯片片如如果果想想要要达达到到标标称称的的最最大大速速度度,,就就需需要要是是DMA工工作作方方式式,,由由于于USB接接口口芯芯片片的的控控制制器器多多半半是是由由速速度度不不快快的的微微控控制制器器构构成成,,简简单单的的通通过过微微控控制制器器访访问问总总线线的的模模式式读读取取发发送送USB数数据据所所能能达达到到的的速速度度是非常有限的。

是非常有限的vUSB主主控控制制器器端端的的编编程程主主要要是是PC驱驱动动程程序序的的编编写写.其其涉涉及及到到Windows WDM驱驱动动程程序序的的编编写写,,相相对对复复杂杂但但有有些些公公司司已已经经提提供供了了Windows的的驱动程序,并已经编写好了软件开发包,使驱动程序,并已经编写好了软件开发包,使PC端软件开发大为简化端软件开发大为简化v在在USB设备端的编程工作主要集中在枚举过程的实现,即要实现设备端的编程工作主要集中在枚举过程的实现,即要实现USB协协议的各种标准请求因为枚举过程较为复杂,其软件编写也需要很大工议的各种标准请求因为枚举过程较为复杂,其软件编写也需要很大工作量网络上有一些资源可以参考,如周立功单片机网站上有作量网络上有一些资源可以参考,如周立功单片机网站上有USBD12下位机驱动程序的下载下位机驱动程序的下载 Southeast University Southeast University3.8  USB接口芯片接口芯片—PDIUSBD12u遵循遵循规范规范u内置内置SIE,,FIFO,,收发器和稳压收发器和稳压电路高性能电路高性能USB接口器件接口器件u兼容各种单片机和微处理器的兼容各种单片机和微处理器的2MBps并行接口速度并行接口速度u全自动全自动DMA操作操作u集成集成320字节字节FIFO存储器存储器u双缓存方案易于实现实时数据传双缓存方案易于实现实时数据传输输u可编程的时钟频率发生可编程的时钟频率发生u内置上电复位和低电压复位电路内置上电复位和低电压复位电路uSO-28和和TSSOP-28两种封装两种封装u工业级工作温度范围:工业级工作温度范围:-40℃℃到到+85℃℃u>8KV的芯片级的芯片级ESD电压保护电压保护u双电压工作方式:双电压工作方式:V或或5V) 参考资料参考资料 v《《PhilipsUSBD12 DatasheetPhilipsUSBD12 Datasheet》》v《《USB SpecificationUSB Specification》》v《《Windows WDM Windows WDM 设备驱动程序开发指南》设备驱动程序开发指南》机械工业出版社机械工业出版社v《《USB USB 总线接口开发指南》总线接口开发指南》国防工业出版社国防工业出版社v硬件设计》硬件设计》清华大学出版社清华大学出版社 Southeast University 总线与系统通讯讲义总线与系统通讯讲义 第四节第四节 Ethernet Southeast University        用用以以太太网网技技术术构构成成的的局局域域网网在在我我们们生生活活中中无无处处不不在在。

如如果果设设备备和和系系统统具具有有通通过过以太网来通讯的功能,那么其就可以利用以太网许多有利条件以太网来通讯的功能,那么其就可以利用以太网许多有利条件        相相对对于于以以太太网网上上PCPC这这样样的的高高速速的的吞吞吐吐量量大大的的主主机机来来说说,,我我们们通通常常的的系系统统都都是是低低速速的的吞吞吐吐量量小小的的,,我我们们在在这这里里称称之之为为小小系系统统这这样样的的小小系系统统存存储储器器容容量量不不大大,,处处理理速速度不高也没有必要支持度不高也没有必要支持100M100M网络       采用以太网通讯的小系统将具有以下特点:采用以太网通讯的小系统将具有以下特点:n n        系统可以从局域网内任意一个节点接入系统可以从局域网内任意一个节点接入n n        和和现现有有的的网网络络设设备备和和主主机机不不冲冲突突,,可可以以共共用用一一个个网网络络,,不不用用重重新新铺铺设设通通讯讯线路线路n n        系统的扩展很方便,可以使用标准网络设备进行总线的延长系统的扩展很方便,可以使用标准网络设备进行总线的延长n n        可以通过更改设备的可以通过更改设备的IPIP地址来使多个设备接入局域网地址来使多个设备接入局域网n n        如果设备的运算能力较强,可以达到很高的通讯速度如果设备的运算能力较强,可以达到很高的通讯速度       小系统通过以太网传输数据,难点在于实现小系统通过以太网传输数据,难点在于实现TCP/IP协议栈。

通常我们只在一个协议栈通常我们只在一个局域网内通讯就足够了因而没有必要完全实现局域网内通讯就足够了因而没有必要完全实现TCP/IP协议栈,通常要实现的是协议栈,通常要实现的是MAC级协议,简易的级协议,简易的ARP协议,简易的协议,简易的IP和和UDP协议,最好能实现协议,最好能实现PING功能而TCP协议过于复杂,不适合在小系统上实现协议过于复杂,不适合在小系统上实现 4.1 简介简介 4.2  协议层次协议层次             在在TCP/IP协议族中,有很多种协议在这里我们只讨论一些方便系协议族中,有很多种协议在这里我们只讨论一些方便系统之间通讯和其相关的协议统之间通讯和其相关的协议 Southeast University •TCP和和UDP是是两两种种最最为为著著名名的的运运输输层层协协议议,,二二者者都都使使用用IP作作为为网网络络层层协协议议虽然虽然TCP使用不可靠的使用不可靠的IP服务,但它却提供一种可靠的运输层服务服务,但它却提供一种可靠的运输层服务•UDP为为应应用用程程序序发发送送和和接接收收数数据据报报一一个个数数据据报报是是指指从从发发送送方方传传输输到到接接收收方方的的一一个个信信息息单单元元((例例如如,,发发送送方方指指定定的的一一定定字字节节数数的的信信息息))。

但但是是与与TCP不不同同的的是是,,UDP是是不不可可靠靠的的,,它它不不能能保保证证数数据据报报能能安安全全无无误误地地到到达达最最终终目目的•IP是是网网络络层层上上的的主主要要协协议议,,同同时时被被TCP和和UDP使使用用TCP和和UDP的的每每组组数数据据都都通通过过端端系系统统和和每每个个中中间间路路由由器器中中的的IP层层在在互互联联网网中中进进行行传传输输在在这这里里我我们不讨论的们不讨论的IP数据如何进行路由选择数据如何进行路由选择•ICMP是是IP协协议议的的附附属属协协议议IP层层用用它它来来与与其其他他主主机机或或路路由由器器交交换换错错误误报报文文和其他重要信息尽管和其他重要信息尽管ICMP主要被主要被IP使用,但应用程序也有可能访问它使用,但应用程序也有可能访问它•ARP((地地址址解解析析协协议议))和和RARP((逆逆地地址址解解析析协协议议))是是某某些些网网络络接接口口((如如以以太网和令牌环网)使用的特殊协议,用来转换太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的地址层和网络接口层使用的地址  Southeast University         要要使使系系统统具具有有网网络络通通讯讯功功能能,,就就需需要要实实现现TCP/IPTCP/IP协协议议栈栈,,协协议议栈栈其其实实是是一一组组逻逻辑辑分分层层的的函函数数,,一一个个完完整整的的协协议议栈栈是是很很庞庞大大的的,,在在实实际际应应用用中中对对于于不不同同的的系系统统的的不不同同需需要要,,我我们们可可以以有有选选择择的的实实现现部部分分协协议议栈栈的的功功能能。

因因为为以以太太网网在在局局域域网网中中占占绝绝大大部部分分,,所所以以我我们们只只讨讨论论基基于于以以太太网网的的网网络络通通讯的实现讯的实现        如如果果系系统统需需要要和和PCPC之之间间进进行行通通讯讯,,需需要要完完成成的的工工作作有有一一下几点:下几点:n n必须实现以太网数据链路层的协议必须实现以太网数据链路层的协议n n实现简单的实现简单的ARPARPn n要实现要实现IPIP协议n n实现部分实现部分ICMPICMP协议,最重要的,实现协议,最重要的,实现PINGPING功能,以方便系功能,以方便系统的调试统的调试n n不建议采用不建议采用TCPTCP协议进行网络通讯,因为其过于庞大和复杂,协议进行网络通讯,因为其过于庞大和复杂,不适合小系统上实现不适合小系统上实现n n推荐实现推荐实现UDPUDP协议,并使用协议,并使用UDPUDP协议进行系统间通讯协议进行系统间通讯 Southeast University 总线与系统通讯讲义总线与系统通讯讲义 第四节第四节 Ethernet Southeast University       在系统的硬件结构上主要有以下两种,在以太网体系结构中,在系统的硬件结构上主要有以下两种,在以太网体系结构中,传输介质是可以不同,通常有屏蔽传输介质是可以不同,通常有屏蔽/非屏蔽双绞线,粗缆,细缆,非屏蔽双绞线,粗缆,细缆,光缆几种,同时还有不同的通讯速度。

在硬件体系上,将其分为光缆几种,同时还有不同的通讯速度在硬件体系上,将其分为两部分,与通讯介质相关的一部分两部分,与通讯介质相关的一部分PHY和与介质无关的一部分和与介质无关的一部分MAC,在两部分之间通过,在两部分之间通过MII媒体独立接口进行通讯媒体独立接口进行通讯v4.3  硬件架构硬件架构 4.3.1  MAC+PHY+CPU Southeast University       MAC和和PHY由一个芯片完成,如由一个芯片完成,如RTL8019,芯片与,芯片与MCU之间通过特定总线相连,一般有专用总线,之间通过特定总线相连,一般有专用总线,PCI总线,总线,PCMCIA总线,总线, CardBus总线几种芯片前端接网络隔离变总线几种芯片前端接网络隔离变压器,然后接压器,然后接RJ45水晶头 4.3.2  PHY+CPU           某些面向网络应用的某些面向网络应用的MCU,其内置了,其内置了MAC部分,这样部分,这样的系统中,只需要外接的系统中,只需要外接PHY(如如RTL8201),隔离变压器和,隔离变压器和RJ45接头即可接头即可  Southeast University 软件编程指南软件编程指南 4.4.1 Sockets,,PC实现与实现与ucLinux实现实现          套套接接字字规规范范描描述述了了网网络络编编程程的的一一般般性性接接口口,,是是由由Berkley Berkley UNIX UNIX 系系统统软软件件发发布布机机构构设设计计用用来来实实现现套套接接字字接接口口的的一一套套函函数数库库。

其其在在uC uC LinuxLinux上上的实现与的实现与WindowsWindows上实现及其相似这里介绍主要的套接字上实现及其相似这里介绍主要的套接字n n           socket()socket()创建新的套接字创建新的套接字n n           accept()accept()在套接字中接受连接在套接字中接受连接n n           connect()connect()建立一个到同位体的连接建立一个到同位体的连接n n           bind()bind()使一个局部地址和套接字相关联使一个局部地址和套接字相关联n n           listen()listen()为输入建立一个收听套接字为输入建立一个收听套接字n n           send()send()通过以建立的套接字发送数据通过以建立的套接字发送数据n n           recv()recv()从套接字接受数据从套接字接受数据n n           shutdown()shutdown()禁止套接字上的发送和接受工作禁止套接字上的发送和接受工作n n           closesocket()closesocket()关闭套接字关闭套接字   Southeast University               右右图图反反应应了了客客户户端端到到服服务务器器端端连连接接的的操操作作。

所所谓谓服服务务器器端端是是指指等等待待连连接接的的计计算算机机,,客客户户机机是是指指最最初初向向服服务务器器发发出出连连接接的的计计算机           在服务器端,计算机首先用在服务器端,计算机首先用socket()函数创建一个套接字,并用函数创建一个套接字,并用bind()函数限定一个名字之后,服函数限定一个名字之后,服务器用务器用listen()函数来侦听这一函数来侦听这一连接当客户调用连接当客户调用connect()函函数的时候,服务器随后调用数的时候,服务器随后调用accept()函数之后,客户端和服务器函数之后,客户端和服务器通过通过send()和和recv()函数发送和函数发送和接受数据等到数据传输结束后,接受数据等到数据传输结束后,用用closesocket()函数结束套接函数结束套接字  Southeast University 4.4.2 TCP,,UDP与协议栈与协议栈        UDP是是我我们们设设计计具具有有网网络络通通讯讯功功能能的的系系统统中中较较合合适适的的协协议议,,因因为为UDP不不面面向向连连接接,,这这与与我我们们常常常常采采用用的的串串口口通通讯讯有有一一样样的的特特性性,,在在UDP基基础础上,我们可以拟定自己的协议,与应答机制。

上,我们可以拟定自己的协议,与应答机制        之之所所以以要要一一直直实实现现到到UDP协协议议层层,,是是因因为为在在PC端端,,无无论论是是Windows还还是是Linux都都有有明明确确的的编编程程接接口口,,就就是是常常说说的的Socket套套接接字字,,名名字字并并不不重重要要,,其其实实质质是是一一组组函函数数,,可可以以在在系系统统之之间间进进行行TCP和和UDP通通讯讯如如果果用用户户想想在在下下一一层层如如(IP和和MAC层层)通通讯讯,,必必须须重重新新编编写写网网络络驱驱动动程程序序,,难难度度很很高高,,与与其其如如此此,,不不如如在在下下位位机机上上实实现现UDP,,因因为为从从IP到到UDP的的协协议议层编写并不复杂层编写并不复杂            如果系统间不需要与如果系统间不需要与PC通讯,那么在一个子网内,我们需要实现的通讯,那么在一个子网内,我们需要实现的协议栈还可以简化,如我们可以只实现协议栈还可以简化,如我们可以只实现IP协议,或者更直接的,只实现协议,或者更直接的,只实现MAC层协议在层协议在MAC层上实现我们自有的协议而与层上实现我们自有的协议而与IP协议不冲突,这可协议不冲突,这可以通过修改以通过修改MAC协议头来实现。

协议头来实现  Southeast University 4.4.3 速度与效率速度与效率            作为一个运算能力有限的系统,其不可能充足使用全部网络资源,作为一个运算能力有限的系统,其不可能充足使用全部网络资源,通常情况下,只能使用网络资源的一小部分实际验证中,使用通常情况下,只能使用网络资源的一小部分实际验证中,使用Sumsang s3c4510网络用处理器网络用处理器arm7核心,主频核心,主频50MHz,,100M网络网络MAC,运行,运行uclinux操作系统,实际传输试验中使用操作系统,实际传输试验中使用UDP协议加上层自协议加上层自定义的简单协议,只能达到定义的简单协议,只能达到8Mbit/s的有效速率,实际网络资源使用不到的有效速率,实际网络资源使用不到10%如果用普通单片机实现如果用普通单片机实现UDP传输实际速率更低所以在设计具有传输实际速率更低所以在设计具有网络通讯功能的小系统时网络速度不是主要限制条件网络通讯功能的小系统时网络速度不是主要限制条件  Southeast University Southeast University4.5     典型硬件典型硬件4.5.1   RTL8019AS RTL8019AS RTL8019AS 是一种高度集成的以太网芯片,能简单的实现是一种高度集成的以太网芯片,能简单的实现Plug and PlayPlug and Play,,并兼容并兼容NE2000NE2000,, 掉电等特性。

由于它拥有三种等级的掉电模式,所以它是作为掉电等特性由于它拥有三种等级的掉电模式,所以它是作为绿色电脑的网络设备的理想选择在全双工模式下,如果是连接到一个同样是绿色电脑的网络设备的理想选择在全双工模式下,如果是连接到一个同样是全双工的交换机或集线器,就可实现同时接收和发送这个特性虽然不能把传全双工的交换机或集线器,就可实现同时接收和发送这个特性虽然不能把传输速率从输速率从10Mbps10Mbps提高到提高到20Mbps20Mbps,但是在执行以太网,但是在执行以太网CSMA/CDCSMA/CD协议时可以避免更多协议时可以避免更多的冲突的发生而的冲突的发生而Microsoft'sPlug and PlayMicrosoft'sPlug and Play功能就可以为用户减轻对资源配功能就可以为用户减轻对资源配置的烦恼置的烦恼( (如如IRQ I/O Menory address IRQ I/O Menory address 等等) )又或者是在一些特殊的场合,为了又或者是在一些特殊的场合,为了对一些不支持对一些不支持Microsoft's Plug and Play Microsoft's Plug and Play 的器件的兼容,的器件的兼容,RTL8091AS RTL8091AS 还可以还可以选择跳线模式或非跳线模式。

选择跳线模式或非跳线模式        为为了了完完整整的的支支持持PnP PnP ,,RTL8019ASRTL8019AS提提供供了了自自动动检检测测10BaseT 10BaseT 集集成成收收发发器器(RJ45)(RJ45)还还是是AUI AUI BNC BNC 接接口口除除了了10BaseT10BaseT可可以以自自动动极极性性修修正正外外,,8 8路路中中断断请请求求和和16 16 位位I/OI/O地址都可以根据资源配置机动调节地址都可以根据资源配置机动调节             RTL8019AS 支持支持16K 32K 64K 字节的字节的BROM 另外还支持另外还支持FLASH MENORY和页访问方式,最大支持和页访问方式,最大支持4M字节字节(16K*256)此外还支持在运行完此外还支持在运行完BROM后释放内存,以供系统其他程序的运行后释放内存,以供系统其他程序的运行RTL8019AS 在片内已经集成在片内已经集成了了16K 字节的字节的SRAM 特性n n           支持支持PnP PnP 自动检测模式自动检测模式n n           支持支持Ethernet II Ethernet II 和和 IEEE802.3 10Base5 IEEE802.3 10Base5,, 10Base2 10Base2,, 10BaseT 10BaseTn n           软件兼容软件兼容8 8 位或位或16 16 位的位的NE2000 NE2000 模式模式n n           支持跳线和非跳线模式支持跳线和非跳线模式n n           支持在非跳线模式下的支持在非跳线模式下的Microsoft‘s Plug and Play Microsoft‘s Plug and Play 配置配置n n           支持在全双工模式下的双倍信道带宽支持在全双工模式下的双倍信道带宽n n           内建数据预取功能来改善性能内建数据预取功能来改善性能n n           支持支持UTP AUI BNC UTP AUI BNC 的自动检测的自动检测n n           在在10BaseT 10BaseT 下支持自动极性修正下支持自动极性修正n n           支持支持8 8 路中断请求路中断请求IRQIRQn n           支持支持16 16 位位I/O I/O 地址地址n n           支持以支持以16K 32K 64K 16K 32K 64K 和和16K 16K 每页最多每页最多256 256 页的访问方式来访问页的访问方式来访问BROMBROMn n           支持在远程启动以后取消支持在远程启动以后取消BROM BROM 对芯片的控制对芯片的控制n n           支持对支持对FLASH FLASH 的读写的读写n n           内建内建16K SRAM16K SRAMn n           可用可用9346 9346 来保存配置和来保存配置和ID ID 参数参数n n           可以在板上对可以在板上对9346 9346 进行编程进行编程n n           支持四盏可编程诊断支持四盏可编程诊断LEDLED Southeast University 4.5.2 RTL8201RTL8201是是10M/100M以太网以太网PHY  Southeast University Southeast University Southeast University 隔离变压器隔离变压器 8052单片机控制单片机控制RTL8019网卡的电路图网卡的电路图 参考资料参考资料•《《TCP/IPTCP/IP详解,卷详解,卷1 1:协议:协议》》 电子工业出版社电子工业出版社•《《实战实战Linux SocketLinux Socket编程编程》》 西安电子科技大学出版社西安电子科技大学出版社•《《Visual CVisual C++++网络通讯协议分析与应用实现网络通讯协议分析与应用实现》》人民邮电出版社人民邮电出版社•《《RTL8019 DatasheetRTL8019 Datasheet》》 www. .com Southeast University 总线与系统通讯讲义总线与系统通讯讲义 第五节第五节 IIC总线总线 Southeast University       Philips公司开发了一个简单的双向两线总线。

实现公司开发了一个简单的双向两线总线实现IC之间之间的有效控制这个总线就称为的有效控制这个总线就称为Inter IC 或或I2C 总线所有符合总线所有符合I2C总线的器件都包含了一个片上接口,使器件之间直接通过总线的器件都包含了一个片上接口,使器件之间直接通过I2C 总总线通讯        I2C 总线的一些特征:总线的一些特征:Ø只要求两条总线线路,一条串行数据线只要求两条总线线路,一条串行数据线SDA,, 一条串行一条串行时钟线时钟线SCLØ每个连接到总线的器件都可以通过唯一的地址和一直存在每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机的简单的主机 / 从机关系软件设定地址;主机可以作为主从机关系软件设定地址;主机可以作为主机发送器或主机接收器机发送器或主机接收器Ø它是一个真正的多主机总线如果两个或更多主机同时初它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏始化数据传输可以通过冲突检测和仲裁防止数据被破坏v5.1   简介简介 总线与系统通讯讲义总线与系统通讯讲义 Southeast University       SDA 和和SCL 都是双向线路,都通过一个电流源或上拉电阻都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压。

当总线空闲时这两条线路都是高电平连连接到正的电源电压当总线空闲时这两条线路都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能与的功能     5.2   总体特征总体特征            SDA线上的数据必须在时钟的高电平周期保持稳定数线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在据线的高或低电平状态只有在SCL线的时钟信号是低电平时线的时钟信号是低电平时才能改变见下图:才能改变见下图:  v在在SCL 线线是是高高电电平平时时SDA 线线从从高高电电平平向向低低电电平平切切换换这这个个情情况况表表示示起起始始条件条件v当当SCL 是高电平时是高电平时SDA 线由低电平向高电平切换表示停止条件线由低电平向高电平切换表示停止条件v起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后总线被认为再次处于空闲状态起始状态态,在停止条件的某段时间后总线被认为再次处于空闲状态起始状态和终止状态如下图所示:和终止状态如下图所示:  Southeast University1。

开始总线周期开始总线周期写入设备控制字,时钟上升沿锁存至设备写入设备控制字,时钟上升沿锁存至设备ACK:应答,主机写入控制字后,数据线:应答,主机写入控制字后,数据线SDA为高,此时主机读取总线状态,若为高,此时主机读取总线状态,若设备正确受到数据则将总线拉低,否则数据线将保持为高主机读取到应答状态正确,设备正确受到数据则将总线拉低,否则数据线将保持为高主机读取到应答状态正确,则可以继续写入数据则可以继续写入数据写入地址,时钟上升沿锁存至设备写入地址,时钟上升沿锁存至设备写入读控制字写入读控制字7读取数据,在时钟下降设备将数据输出至总线,此时主机即可读取读取数据,在时钟下降设备将数据输出至总线,此时主机即可读取结束总线周期结束总线周期5.3   典型时序典型时序5.3.1   读时序读时序 Southeast University1开始总线周期开始总线周期写入地址控制字,时钟上升沿锁存至设备写入地址控制字,时钟上升沿锁存至设备ACK:应答,主机写入控制字后,数据线:应答,主机写入控制字后,数据线SDA为高,此时主机读取总线状态,若为高,此时主机读取总线状态,若设备正确受到数据则将总线拉低,否则数据线将保持为高。

主机读取到应答状态正确,设备正确受到数据则将总线拉低,否则数据线将保持为高主机读取到应答状态正确,则可以继续写入数据则可以继续写入数据写入地址,时钟上升沿锁存至设备写入地址,时钟上升沿锁存至设备写入数据,时钟下降沿锁存至设备写入数据,时钟下降沿锁存至设备结束总线周期结束总线周期5.3.1   写时序写时序 总线与系统通讯讲义总线与系统通讯讲义 第五节第五节 IIC总线总线 Southeast UniversityØ在使用在使用IIC接口器件时,注意在时钟和数据线上加上拉电阻接口器件时,注意在时钟和数据线上加上拉电阻Ø有些有些MCU具有具有IIC接口模块,其已经将设备控制字和数据映接口模块,其已经将设备控制字和数据映射到对应的特殊功能寄存器只要读写这些寄存器就可以访射到对应的特殊功能寄存器只要读写这些寄存器就可以访问外部问外部IIC器件了,这样的器件接口程序编写较为方便器件了,这样的器件接口程序编写较为方便Ø如果如果MCU没有没有IIC接口模块,此时需要编写程序利用接口模块,此时需要编写程序利用MCU的的GPIO来模拟来模拟IIC接口时序此时编程较为复杂。

网络上有许接口时序此时编程较为复杂网络上有许多资源可以供参考多资源可以供参考v5.4   设计指南设计指南 典型芯片典型芯片 IIC接口器件有许多种类,设计最常用的器件是串行接口器件有许多种类,设计最常用的器件是串行EEPROM,例如,例如24C01—24C256 参考资料参考资料《《THE I2C-BUS SPECIFICATION》》  第六节第六节 SPI总线总线 Southeast UniversitySPI(Serial SPI(Serial Peripheral Peripheral Interface--Interface--串串行行外外设设接接口口) )总总线线系系统统是是一一种种同同步步串串行行外外设设接接口口,,它它可可以以使使MCUMCU与与各各种种外外围围设设备备以以串串行行方方式式进进行行通通信信以以交交换换信信息息外外围围设设置置FLASHRAMFLASHRAM、、网网络络控控制制器器、、LCDLCD显显示示驱驱动动器器、、A/DA/D转转换换器器和和MCUMCU等等SPISPI总总线线系系统统可可直直接接与各个厂家生产的多种标准外围器件直接接口。

与各个厂家生产的多种标准外围器件直接接口由由于于SPISPI系系统统总总线线一一共共只只需需3 3~~4 4位位数数据据和和控控制制线线即即可可实实现现与与具具有有SPISPI总总线线接接口口功功能能的的各各种种I/OI/O器器件件进进行行接接口口,,采采用用SPISPI总总线线接接口口可可以以简简化化电电路路设设计计,,节节省省很很多多常常规规电电路路中中的接口器件和的接口器件和I/OI/O口线,提高设计的可靠性口线,提高设计的可靠性利利用用SPISPI总总线线可可在在软软件件的的控控制制下下构构成成各各种种系系统统如如1 1个个主主MCUMCU和和几几个个从从MCUMCU、、几几个个从从MCUMCU相相互互连连接接构构成成多多主主机机系系统统((分分布布式式系系统统))、、1 1个个主主MCUMCU和和1 1个个或或几几个个从从I/OI/O设设备备所所构构成成的各种系统等的各种系统等6.1   简介简介 6.2   信号定义信号定义n串行时钟线串行时钟线SCKn低电平有效的从机选择线低电平有效的从机选择线SSn输出输出/从机输入数据线从机输入数据线MOSTn主机主机输入主机主机输入/从机输出数据线从机输出数据线MISOv另外有的另外有的SPI接口芯片带有中断信号线接口芯片带有中断信号线INT或或INT、有的、有的SPI接口芯片没有接口芯片没有主机输出主机输出/从机输入数据线从机输入数据线MOSI。

 在大多数应用场合,可使用在大多数应用场合,可使用1个个MCU作为控机来控制数据,并向作为控机来控制数据,并向1个或几个从外围个或几个从外围器件传送该数据从器件只有在主机发命令时才能接收或发送数据其数据的传器件传送该数据从器件只有在主机发命令时才能接收或发送数据其数据的传输格式是高位(输格式是高位(MSB)在前,低位()在前,低位(LSB)在后 Southeast University6.3  典型时序典型时序读时序:读时序:1升高CS以启动设备以启动设备在时钟SK的上升沿将命令字的上升沿将命令字110锁存至设备命令字由锁存至设备命令字由DI输输出在时钟SK的上升沿将地址锁存至设备命令字由的上升沿将地址锁存至设备命令字由DI输出在时钟SK的下降沿将数据由的下降沿将数据由DO读出降低CS以停止设备以停止设备 v总线写时序总线写时序1 1升高CSCS以启动设备以启动设备2 2在时钟SKSK的上升沿将命令字锁存至设备命令字由的上升沿将命令字锁存至设备命令字由DIDI输出在时钟SKSK的上升沿将地址字锁存至设备地址字由的上升沿将地址字锁存至设备地址字由DIDI输出在时钟SKSK的上升沿将数据写入设备。

数据由的上升沿将数据写入设备数据由DIDI输出降低CSCS以停止设备以停止设备 总线与系统通讯讲义总线与系统通讯讲义 第六节第六节 SPI总线总线 Southeast UniversityØ有些MCU具有SPI接口模块,其已经将设备控制字和数据映射到对应的特殊功能寄存器只要读写这些寄存器就可以访问外部SPI器件了,这样的器件接口程序编写较为方便Ø如果MCU没有SPI接口模块,此时需要编写程序利用MCU的GPIO来模拟SPI接口时序此时编程较为复杂网络上有许多资源可以供参考v6.4   编程指南编程指南 6.5  典型芯片典型芯片6.5.1 93c46 EEPROM 6.5  典型芯片典型芯片6.5.2 X5045,,CPU Supervisor with 4K SPI EEPROM  总线与系统通讯讲义总线与系统通讯讲义 第七节第七节 ISA总线总线 Southeast University       ISA总线是采用总线是采用80286 CPU的的IBM PC/AT 机中使用的总线,机中使用的总线,该总线同该总线同8位的位的PC/XT总线保持了兼容性。

它在总线保持了兼容性它在8位的位的PC/XT总线总线的基础上扩展而成的基础上扩展而成16位总线结构这种总线结构是在不改变原来位总线结构这种总线结构是在不改变原来的的XT总线的前提下增加数条信号线,从而解决寻址与数据上的问总线的前提下增加数条信号线,从而解决寻址与数据上的问题,同时还增加了一些内存的控制信号题,同时还增加了一些内存的控制信号       由于这种总线的开放性,制定统一标准很重要为此国际电由于这种总线的开放性,制定统一标准很重要为此国际电子电气工程师协会子电气工程师协会( IEEE )专门制订了以专门制订了以PC/ AT总线为标准的工总线为标准的工业标准体系结构业标准体系结构ISA,因此,因此ISA总线就成为总线就成为PC/AT总线的另一个名总线的另一个名称        从硬件角度看,从硬件角度看,ISA总线是一个单用户的结构,缺乏智能成总线是一个单用户的结构,缺乏智能成分ISA总线的总线的8个扩展槽共用一个个扩展槽共用一个DMA请求v7.1   简介简介 总线与系统通讯讲义总线与系统通讯讲义 第七节第七节 ISA总线总线 Southeast University       ISA总线共有总线共有98根线,均连接到主板的根线,均连接到主板的ISA总线插槽上。

总线插槽上ISA插槽是长度为插槽是长度为mm的黑色插槽,一般在主板的最外侧的黑色插槽,一般在主板的最外侧98根线可根线可分为以下五类:地址线、数据线、控制线、时钟线和电源线分为以下五类:地址线、数据线、控制线、时钟线和电源线Ø地址线:地址线:SA0-SA19和和LA17-23共共24根地址线,寻址容量为根地址线,寻址容量为16MØ数据线:数据线:SD0-SD15Ø控制线:如地址允许,地址锁存,控制线:如地址允许,地址锁存,I/O读写,存储器读写,中断读写,存储器读写,中断请求输入,请求输入,DMA回答信号,系统复位信号回答信号,系统复位信号v7.2   ISA总线信号简介总线信号简介 总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast University PCI(Peripheral PCI(Peripheral Component Component InterconnectInterconnect,,外外部部部部件件互互连连) )局局部部总总线线最最早早在在19921992年年6 6月月推推出出版版本本,,当当时时只只支支持持3232位位的的数数据据宽宽度度。

而而19951995年年6 6月月推推出出的的PCIPCI局局部部总总线线版版本本则则支支持持6464位位的的数数据据通通路路以以及及66MHz66MHz的的总总线线时时钟钟运运行行在在33MHz33MHz下下的的3232位位PCIPCI总总线线,,其其数数据据总总线线传传输输速速率率可可达达132MB/s132MB/s;;而而运运行行在在66MHz66MHz的的总总线线时时钟钟下下可可达达264MB/s264MB/s;;对对于于6464位位的的PCIPCI其其传传输输速速率率可可达达528MB/s528MB/s,,这这些些都都足足够够支支持持高高清清晰晰度度电电视视信信号号和和实实时时的的三三维维虚虚拟现实        PCI总线未与总线未与CPU直接相连,而是采用一个桥接器使直接相连,而是采用一个桥接器使CPU与与PCI总线相连,它是总线相连,它是位于位于CPU局部总线与标准的局部总线与标准的I/O扩展总线之间的一种总线结构由于扩展总线之间的一种总线结构由于PCI是从是从CPU局局部总线中经过桥接器隔离出来的,因此不会像部总线中经过桥接器隔离出来的,因此不会像VESA总线那样存在总线那样存在CPU负载过重的负载过重的问题,允许主板上有问题,允许主板上有10个负载,但这并不是说主板上可以加个负载,但这并不是说主板上可以加10个插槽,因为采用个插槽,因为采用PCI总线的主板,一般已将软盘、硬盘控制器总线的主板,一般已将软盘、硬盘控制器(如:如:IDE接口接口)以及多功能以及多功能I/O接口集成接口集成到了主板上,实际上在大多数到了主板上,实际上在大多数Pentium级的级的PCI主板上,一般都只安排了四个左右的主板上,一般都只安排了四个左右的PCI扩展槽。

扩展槽 v8.1   简介简介 PCI总线有以下几大特点:总线有以下几大特点:*独立于独立于CPU;;*传输效率高;传输效率高;*多总线共存;多总线共存;    *支持突发传输;支持突发传输;           *支持总线主控方式;支持总线主控方式;    *采用同步操作;采用同步操作;                       *支持两种电压下的扩展卡;支持两种电压下的扩展卡;            *具有即插即用功能;具有即插即用功能;                                  *合理的管脚安排和预留扩展空间合理的管脚安排和预留扩展空间 Southeast UniversityPCIPCI信信号号可可分分为为必必备备和和可可选选两两大大类类对对于于取取得得了了总总线线控控制制权权的的主主设设备备它它的的必必备信号备信号4949条;而从设备必备信号为条;而从设备必备信号为4747条可选信号为可选信号为5151条,用于条,用于6464位扩展、中断请求和高速缓存支持等位扩展、中断请求和高速缓存支持等PCIPCI总线包括以下几类信号:总线包括以下几类信号:①① 系统接口信号系统接口信号 系统时钟输入和系统复位两组信号系统时钟输入和系统复位两组信号②② 地址与数据接口地址与数据接口 有有3232位位分分时时复复用用数数据据地地址址总总线线,,4 4位位总总线线命命令和字节复用信号线和奇偶校验位令和字节复用信号线和奇偶校验位③③ 接口控制信号接口控制信号 主、从设备准备好信号,设备选择信号等主、从设备准备好信号,设备选择信号等④④ 仲裁接口信号仲裁接口信号 有总线占用的请求和占用允许两根信号有总线占用的请求和占用允许两根信号⑤⑤ 错误报告接口信号错误报告接口信号 有系统错误,奇偶校验错误两根信号有系统错误,奇偶校验错误两根信号⑥⑥ 中断接口信号中断接口信号 共有四条中断线:共有四条中断线:INTA#INTA#,,INTB#INTB#,,INTC#INTC#,,INTD#INTD#    另外还有另外还有64位总线扩展和高速缓存支持两组信号。

位总线扩展和高速缓存支持两组信号 8.2   信号定义信号定义 Southeast University8.3    PCI插槽与插卡插槽与插卡1、、PCI插槽与插槽与ISA插槽在主板上的对比:插槽在主板上的对比:  2、、PCI插卡插卡  Southeast University总线数据传输过程总线数据传输过程8.4.1  总线上的读操作总线上的读操作以下是以下是PCI总线上的一次基本的读操作:总线上的一次基本的读操作:一旦一旦FRAME#信号有效,数据地址复用信号有效,数据地址复用AD线将送出线将送出32位地址,而位地址,而C/BE[3:0]#线上传输总线命令线上传输总线命令数据期从时钟数据期从时钟3x的上升沿处开始,此时的上升沿处开始,此时AD线送出数据此时线送出数据此时C/BE[3:0]#线作为字节使能指明数线作为字节使能指明数据线上哪几个字节是当前要传输的据线上哪几个字节是当前要传输的DEVSEL#和和TRDY#信号是由设备提供的,该从设备是被地信号是由设备提供的,该从设备是被地址期内所发地址选中的设备只有址期内所发地址选中的设备只有IRDY#和和TRDY#同时有效的上升沿才完成数据传输。

图中时同时有效的上升沿才完成数据传输图中时钟钟4,,6,,8处各进行了一次数据传输,在时钟处各进行了一次数据传输,在时钟3,,5,,7处插入了等待周期但是只有最后一次是处插入了等待周期但是只有最后一次是有效的数据传输,此时有效的数据传输,此时IRDY#有效,然后有效,然后FRAME#信号撤离信号撤离  8.4.2 8.4.2 总线上的写操作总线上的写操作以下是以下是PCI总线上的一次基本的写操作:总线上的一次基本的写操作:一旦一旦FRAME#信号有效,数据地址复用信号有效,数据地址复用AD线将送出线将送出32位地址,而位地址,而C/BE[3:0]#线上传输总线线上传输总线命令从时钟命令从时钟3x的上升沿出由设备连续插入了的上升沿出由设备连续插入了3个等待周期,时钟个等待周期,时钟5x处传输的双方都插入等待周处传输的双方都插入等待周期,当期,当FRAME#撤离时,必须要有撤离时,必须要有IRDY#有效为前提写操作与读操作不同之处在于在写操作有效为前提写操作与读操作不同之处在于在写操作中,地址期和数据期之间没有交换周期这是由于地址和数据都是由主设备发出的,无须等待中,地址期和数据期之间没有交换周期。

这是由于地址和数据都是由主设备发出的,无须等待数据在总线上的充电稳定数据在总线上的充电稳定 Southeast University8.5 PCI总线命令总线命令 PCI总线命令出现在地址期的总线命令出现在地址期的C/BE[3::0]#线上共有共有16条总线命令主要有以下几条:条总线命令主要有以下几条:1.中断响应命令:中断响应命令:用于读取由系统中断控制器提供的中断类型号用于读取由系统中断控制器提供的中断类型号2.特殊周期命令:特殊周期命令:在该命令下的周期内,在该命令下的周期内,PCI并不包含目标地址,而以广播并不包含目标地址,而以广播形式发给所有设备,报告处理器工作状态接收设备自行确定该信号适合形式发给所有设备,报告处理器工作状态接收设备自行确定该信号适合自身与否自身与否3.I/O读、写命令:读、写命令:分别是从一个映射到分别是从一个映射到I/O地址空间的读和向一个映射到地址空间的读和向一个映射到I/O地址空间的写地址空间的写4.保留命令:保留命令:预留之用,但不可以被预留之用,但不可以被PCI设备挪用,也不允许设备对该命令设备挪用,也不允许设备对该命令作出反应。

作出反应5.存储器读写命令:存储器读写命令:分别是从一个映射到存储器地址空间的读和向一个映射分别是从一个映射到存储器地址空间的读和向一个映射到存储器地址空间的写到存储器地址空间的写6.配置读写:配置读写:从每个设备的配置空间读取或写入数据从每个设备的配置空间读取或写入数据7.存储器多行读:存储器多行读:用来大块连续数据的传输,多用在对多行用来大块连续数据的传输,多用在对多行Cache数据8.双地址周期(双地址周期(DAC):):该命令用来对支持该命令用来对支持64位寻址的设备发送位寻址的设备发送64位地址,位地址,需要两个时钟周期才能完成需要两个时钟周期才能完成 C/BE[3::0]#Command TypeC/BE[3::0]#Command Type0000Interrupt Acknowledge       中断响中断响应1000Reserved                        保留保留0001Special Cycle               特殊周期特殊周期1001Reserved                        保留保留0010I/O Read                从从 I/O端口端口读数据数据1010Configuration Read             配置配置读0011I/O Write     向向 I/O端口写数据端口写数据1011Configuration Write             配置写配置写0100Reserved                      保保留留1100Memory Read  Multiple    存存储器多行器多行读0101Reserved                      保保留留1101Dual Address Cycle         双地址周期双地址周期0110Memory Read   从从内内存存空空间映像映像读数据数据1110Memory Read Line         存存储器行器行读0111Memory Write   向向内内存存空空间映像写数据映像写数据1111Memory Write and Invalidate   存存储器写器写 Southeast University8.6   PCI总线的三个地址空间总线的三个地址空间 PCI总线定义了三个物理地址空间:存储器地址空间、总线定义了三个物理地址空间:存储器地址空间、I/O地址空地址空间、配置地址空间。

实际上存储器地址空间和间、配置地址空间实际上存储器地址空间和I/O地址空间为通常意义地址空间为通常意义下的地址空间,配置地址空间用于支持下的地址空间,配置地址空间用于支持PCI的硬件配置的硬件配置8.7   PCI总线配置总线配置            PCI总线配置的空间定义目的在于实现完全的设备再定位而无需用总线配置的空间定义目的在于实现完全的设备再定位而无需用户干预安装、配置和引导,并由与设备无关的软件进行系统地址映射户干预安装、配置和引导,并由与设备无关的软件进行系统地址映射也就是我们平常所说的即插即用也就是我们平常所说的即插即用PnP当机器加电时,当机器加电时,PCI主控制器扫主控制器扫描描PCI总线,确定所有的总线,确定所有的PCI设备,读取各个设备,读取各个PCI设备的配置空间信息,设备的配置空间信息,根据配置信息分配给根据配置信息分配给PCI设备相应的资源,如内存空间映射,设备相应的资源,如内存空间映射,IO空间空间映射,中断分配,映射,中断分配,DMA资源分配等等资源分配等等            在在Windows操作系统的操作系统的PC设备中,设备中,PCI设备的枚举是由设备的枚举是由windows系统的系统的PCI设备驱动程序完成的。

设备驱动程序完成的PCI设备驱动程序枚举完成后会通过设备驱动程序枚举完成后会通过即插即用消息通知上层设备驱动程序资源的分配情况,而上层驱动程即插即用消息通知上层设备驱动程序资源的分配情况,而上层驱动程序就可以根据资源的分配情况决定实现哪些功能,或向应用层报告资序就可以根据资源的分配情况决定实现哪些功能,或向应用层报告资源分配不够源分配不够PCI设备所得到的资源可以在设备所得到的资源可以在Windows系统中的设备管系统中的设备管理器中看到理器中看到    通通常常PCI主主控控制制器器端端为为PC端端,,PCI设设备备的的驱驱动动程程序序的的编编写写完完成成用用户户,,因因为为PCI设设备备的的枚枚举举由由底底层层驱驱动动完完成成所所以以用用户户驱驱动动程程序序主主要要完完成成相相应应的的功功能能实实现现,,也也可可以以将将所所有有的的存存储储器器读读写写和和端端口口读读写写请请求求都都送送到到应应用用层层处处理理另另外外一一些些厂厂商商也提供其产品的也提供其产品的windows驱动程序驱动程序   在在设设计计PCI接接口口设设备备时时,,通通常常选选用用PCI接接口口芯芯片片将将PCI总总线线时时序序转转换换为为较较为为易用的局部总线时序。

常用的易用的局部总线时序常用的PCI接口芯片有接口芯片有PLX公司和公司和AMCC公司的产品公司的产品   PCI设设备备的的配配置置信信息息通通常常都都是是按按照照接接口口芯芯片片要要求求的的一一定定的的格格式式写写在在EEPROM中,然后由中,然后由PCI接口芯片在设备枚举时自动读取并发送给主控制器接口芯片在设备枚举时自动读取并发送给主控制器   PCI设设备备端端的的接接口口可可以以直直接接访访问问存存储储器器,,如如果果需需要要访访问问局局部部IO空空间间,,使使用用CPLD/FPGA器器件件作作为为接接口口是是一一个个很很好好的的选选择择如如果果设设备备端端有有下下位位机机如如51单单片片机机系系统统存存在在,,那那么么可可以以使使用用邮邮箱箱功功能能实实现现设设备备和和PCI主主设设备备之之间间的的通通讯讯邮邮箱箱是是PCI接接口口芯芯片片中中的的一一组组特特殊殊寄寄存存器器,,有有两两组组接接口口,主主控控制制器器和和下下位位机机都都可可以以访访问问它它下下位位机机将将数数据据发发送送到到邮邮箱箱,,然然后后主主控控制制器器就就可可以以从从邮邮箱箱中中取取走走数数据据,,反反之之亦然。

亦然   另另外外也也可可以以用用CPLD/FPGA直直接接实实现现PCI接接口口,,可可以以实实现现协协议议中中的的一一部部分分,,此此种种方方法法较较复复杂杂需需要要对对PCI总总线线时时序序有有很很准准确确的的把把握握,,而而且且其其调调试试风风险险较较大大,,最最好能有专用的好能有专用的PCI设备硬件调试平台,而不是在设备硬件调试平台,而不是在PC上做这种试验上做这种试验 总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast University       PCI9050是是PLX公司为扩展适配板卡推出的能提供一种混合公司为扩展适配板卡推出的能提供一种混合的高性能的高性能PCI总线目标模式的接口芯片,可提供用于适配卡的小总线目标模式的接口芯片,可提供用于适配卡的小型高性能型高性能PCI总线目标接口总线目标接口v8.9   硬件设计指南硬件设计指南—PCI接口芯片接口芯片PCI9050 总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast Universityv8.9.1 PCI9050特点特点l 、符合规范,支持开发低成本的从模式适配器。

该芯片支持从、符合规范,支持开发低成本的从模式适配器该芯片支持从ISA适配适配器向器向PCI适配器转换适配器转换2、带有五个局域总线地址空间和四个片选带有五个局域总线地址空间和四个片选3、支持突发存储器映射和、支持突发存储器映射和I/O映射方式在映射方式在PCI总线和局部总线存取数据总线和局部总线存取数据双向双向FIFO可以用于零等待状态突发操作可以用于零等待状态突发操作PCI总线总是工作在突发方式,总线总是工作在突发方式,局部总线可以设置成突发方式或者连续单周期方式局部总线可以设置成突发方式或者连续单周期方式4、可以从两个局部总线中断输入生成一个、可以从两个局部总线中断输入生成一个PCI中断5、局部时钟与、局部时钟与PCI时钟异步工作,允许局部总线独立于时钟异步工作,允许局部总线独立于PCI时钟工作时钟工作6、支持多路复用和非多路复用的、支持多路复用和非多路复用的8位、位、16位和位和32位通用局部总线位通用局部总线7、总线驱动总线驱动PCI9050直接生成所有的控制、地址和数据信号,用于驱直接生成所有的控制、地址和数据信号,用于驱动动PCI总线,不需要额外驱动电路总线,不需要额外驱动电路。

总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast Universityv8.9.2 PCI9050的功能描述的功能描述       PCI9050为非为非PCI设备和设备和PCI总线提供数据通道总线提供数据通道       上电复位或总线复位后,上电复位或总线复位后, PCI9050会用会用EEPROM中有效的读取值来配中有效的读取值来配置片内寄存器,否则设为缺省值置片内寄存器,否则设为缺省值         PCI9050提供一系列的内部寄存器来为总线接口设计与实现提供最大提供一系列的内部寄存器来为总线接口设计与实现提供最大的灵活性寄存器分为两类:的灵活性寄存器分为两类:PCI配置寄存器和局部配置寄存器配置寄存器和局部配置寄存器        PCI主控设备能够直接对局部总线上的设备进行读写操作主控设备能够直接对局部总线上的设备进行读写操作PCI9050内内的配置寄存器控制局部地址空间的重新映射双向的配置寄存器控制局部地址空间的重新映射双向FIFO引起局部和引起局部和PCI总总线上高性能的突发线上高性能的突发。

PCI9050支持突发式内存映射传输和单周期的内存或支持突发式内存映射传输和单周期的内存或I/O映射传输映射在映射传输映射在PCI内存和内存和I/O空间中的地址由空间中的地址由PCI基址寄存器设置基址寄存器设置而且,局部映射寄存器允许将而且,局部映射寄存器允许将PCI地址空间转换为局部地址空间地址空间转换为局部地址空间 总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast Universityv8.9.3 PCI9050使用时应该注意的问题使用时应该注意的问题n9050内部的寄存器是通过外部串行内部的寄存器是通过外部串行EEPROM上电加载的上电加载的9050会自动会自动根据该根据该EEPROM的状态来决定其内部寄存器的值如果的状态来决定其内部寄存器的值如果EEPROM内部没内部没有烧写为有效值,应保证其开始有烧写为有效值,应保证其开始48位全为位全为“1”,否则,系统上电时会出,否则,系统上电时会出错n9050有有5个本地空间,用户可根据实际的需要来进行配置,并不是要用个本地空间,用户可根据实际的需要来进行配置,并不是要用到所有的。

当将本地空间配置成到所有的当将本地空间配置成I/O时,对该空间的读写只能单次进行时,对该空间的读写只能单次进行如果配置成存储器模式,用户会有多种接入模式,大大提高了速度如果配置成存储器模式,用户会有多种接入模式,大大提高了速度n突发模式是为了提高本地总线操作速度而设计的在该模式期间,突发模式是为了提高本地总线操作速度而设计的在该模式期间,9050只提供一次传输开始和终止信号开始信号有效时,地址将以本地只提供一次传输开始和终止信号开始信号有效时,地址将以本地时钟的频率递增,可以利用时钟的频率递增,可以利用BTERM#引脚是否有效来中止突发操作引脚是否有效来中止突发操作nPentium系列的系列的CPU,,不支持突发读操作,只可能产生单次读操作不支持突发读操作,只可能产生单次读操作用户如果需要在用户如果需要在PCI总线上实现突发操作,应该选用支持总线上实现突发操作,应该选用支持DMA传输的芯传输的芯片,比如片,比如PCI9054但是但是PCI9050会把会把PCI总线上的多次单次读操作转化总线上的多次单次读操作转化为突发操作为突发操作 总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast Universityv8.9.4  基于基于PCI9050的的PCI接口设计接口设计       下面给出的是一个利用下面给出的是一个利用PCI9050做接口的做接口的PCI插卡。

在用插卡在用户电路上,采用户电路上,采用MT90820做交换,实现数字电路的转接和复接做交换,实现数字电路的转接和复接具体电路如下图所示具体电路如下图所示 :: 总线与系统通讯讲义总线与系统通讯讲义 第八节第八节 PCI总线总线 Southeast Universityv8.9.4 续续((1 1)硬件设计:)硬件设计:接口芯片接口芯片PCI9050PCI9050主要包括主要包括PCIPCI总线信号接口和局部总线接口硬件电路总线信号接口和局部总线接口硬件电路分为三个部分第一部分是分为三个部分第一部分是90509050和和PCIPCI插槽间的连接信号线这些信号插槽间的连接信号线这些信号包括地址数据复用信号包括地址数据复用信号AD[31:0]AD[31:0],总线命令信号,总线命令信号C/BE[3:0]#C/BE[3:0]#和和PCIPCI协议协议控制信号控制信号PARPAR、、FRAME#FRAME#、、IRDY#IRDY#、、TRDY#TRDY#、、STOP#STOP#、、IDSELIDSEL、、DEVSEL#DEVSEL#、、PERR#PERR#、、SERR#SERR#。

第二部分是与串行第二部分是与串行EEPROMEEPROM的连线这里有四根信号线:的连线这里有四根信号线:EESKEESK、、EEDOEEDO、、EEDIEEDI、、EECSEECS,串行,串行EEPROMEEPROM的数据可以提前烧好,也可以在的数据可以提前烧好,也可以烧写第三部分就是线烧写第三部分就是90509050与应用电路的连接在这个例子里,它和与应用电路的连接在这个例子里,它和MT90820MT90820相连,包括相连,包括LALA地址总线,地址总线,LADLAD数据总线,数据总线,LBE#LBE#字节使能信号,字节使能信号,LW/RLW/R读写信号等读写信号等2 2)软件设计:)软件设计:程序主要分为两个部分一部分为程序主要分为两个部分一部分为PCI9050PCI9050各个配置寄存器赋值并初始各个配置寄存器赋值并初始化,还有一部分为主程序,任务就是把化,还有一部分为主程序,任务就是把PCMPCM链路上的信号经过链路上的信号经过MT90820MT90820交交换矩阵后,再通过换矩阵后,再通过PCI9050PCI9050送到送到CPUCPU 参考资料参考资料•《《S5920 Datasheet》》•《《PCI9050 Datasheet》》•《《PCI9052芯片芯片ISA模式的实践模式的实践》》        电子技术电子技术              2002/08  •《《几种典型几种典型PCI总线接口芯片性能分析比较总线接口芯片性能分析比较》》测控技术测控技术               2001/08   •《《FPGA实现实现PCI总线接口技术总线接口技术》》                   电子产品世界电子产品世界  2002年年08期期 谢谢!谢谢!于 东南大学 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档