《总线与系统通讯讲义.ppt》由会员分享,可在线阅读,更多相关《总线与系统通讯讲义.ppt(86页珍藏版)》请在三一办公上搜索。
1、总线与系统通讯讲义,第一节 总论第二节 串行异步通信总线第三节 通用串行总线USB第四节 Ethernet第五节 IIC总线第六节 SPI总线第七节 ISA总线第八节 PCI总线,Southeast University,2004.07,总线与系统通讯讲义,第一节 总论定义:总线是连接系统有关部件的一组信号线,是系统中用来传送信息代码的公共通路。片总线(Chip Bus,C-BUS):又称元件级总线,把部件内各种不同器件连接在一起的信号线。IIC,SPI。内部总线(Internal Bus,I-BUS):即系统总线,用于微机各部件之间的信息传输。ISA,PCI。外部总线(External Bu
2、s,E-BUS):又称通信总线,用于设备之间或微机与设备之间的通信。如USB,232,485,ethernet。,Southeast University,2004.07,总线与系统通讯讲义,第二节 串行异步通信总线2.1 UART与RS-232C,RS-485,Southeast University,2004.07,UART(Universal Asynchronous Receive/Transmitter)通用异步收发器。在异步串行通信总线中,RS-232C和RS485是比较广泛的两种总线标准。这两种标准只是在电平标准上作了一定的约定。,2.2 串行异步通信的数据格式,1,1,0,0,
3、0,0,1,0,1,1,1,0,0,0,起始位,数据位,0,低,高,校验位,空闲位,停止位,完整一帧,Southeast University,2004.07,RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:020Kbps。1.电气特性 RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。逻辑“1”=-3V-15V“0”=+3V+15V 与TTL逻辑电平不一样,可用TTL/EIA电平转换器进行,如MC1488,MC1489。,2.3 EIA-RS-232C2.3.1 RS-232C简介,Southeast Univer
4、sity,2004.07,采用EIA电平比TTL电平具有更强的抗干扰性能。另外,MAX232省电可连接二对收/发线,只用单电源。2.机械特性1)连接器(Connector)常用二种:DB-25型 25脚。只用9个信号(2个数据线,6个控制线,1个地址)如图:,Southeast University,2004.07,1,2,3,4,5,6,7,8,9,DSR,RTS,CTS,RI,DCD,RXD,TXD,DTR,GND,DB-9型连接器,DB-9型 9针,9针全用,如右图。,3.协议要求 RS-232C仅仅在信号传输中电平的要求等物理方面作出了规定,它构成协议的一个部分。而数据传输的字节内容所
5、代表的含义也是协议的重要部分。,2.3.2 接口芯片及典型电路 接口芯片有:TTLRS-232C:MC1488,75188;RS-232CTTL:MC1489,75189;TTLRS-232C:MAX232,ICL232等等。,Southeast University,2004.07,Southeast University,2004.07,利用TTLRS-232C接口芯片MC1488和RS-232CTTL接口芯片MC1489实现TTL与RS-232C相互转换的一种电路如下:,Southeast University,2004.07,2.4.1 电气特性 总线只有信号线A和B,当电平A-B20
6、0mV时,线路上表示传输信号“1”;当B-A200mV时,线路上表示传输“0”。仍然遵循串行异步通信数据的传输格式,这样信号就可以以差分方式得到长距离扩展。而且总线数目少,连接灵活方便。,2.4 RS-485简介 RS-232C标准总线系统只能一对多通信,而RS-485标准则可以多机通信。没有硬件上的主从约束,任何时刻所有挂在RS-485总线上的UART终端都在监听总线上的数据。一旦与自身要求符合,立即开始通信。否则丢弃所收到的数据。,2.4.2 接口芯片及典型电路 MAX481、MAX483、MAX485、MAX487等是RS485总线的一些接口芯片,差别体现在半/全双工工作方式、数据传输速
7、率、转换率限制、功耗关机、静态电流大小和总线上允许的收发器数目等。,Southeast University,2004.07,Southeast University,2004.07,2.4.3 多机通讯与硬件连接,多机通讯系统可以设计成全双工通讯和半双工通讯。半双工通讯一般采用主机查询方式,分机只有在主机允许下才能驱动总线,使用完总线之后立即释放总线。在全双工通讯时,也是通常采用由主机查询的工作方式,需要与主机通讯的分机占有总线。但要注意不要使多个分机同时长时间驱动主机接受总线。,Southeast University,2004.07,2.5 设计指南,2.5.1 MCU软件设计 对于一个
8、基于UART的通讯控制系统,下位机的编程主要是对UART进行编程。在单片机作为从机的应用中,由于单片机一般通过内部的特殊功能寄存器(SFR,Special Functional Register)对UART管理,所以从实现的角度来说,编程重在熟悉串口工作寄存器(TMOD,SCON,TI,RIaccording to 51)的使用以及串口中断服务程序的实现。2.5.2 PC软件设计 由于PC机性能稳定,功能强大,人机界面非常友好,又有很成熟的软件开发环境,所以PC机在多机控制系统中,常常作为主机。在32位Windows系统中,串口和其他通讯设备一样是作为文件来处理的。串口的打开,关闭,读写所用的
9、函数和操作文件的函数完全一致。如CreateFile()用于打开串口CloseHandle()用于关闭串口ReadFile()读串口接收到的数据WriteFile()向串口发送数据GetCommState(),SetCommState()配置串口GetCommProperties()得到串口属性 另外,Windows的COM控件也对串口进行了封装。可以使用MSComm控件来进行串口编程。PC与单片机通讯一定要注意波特率的一致,在PC端,如果打开串口的波特率不存在或者说系统不支持(指API函数),系统并不会报错,而是会选择相近的波特率通讯。这样有可能导致上位机和下位机通讯波特率不一致,通讯不成功
10、。,2.6参考资料,PC机及单片机数据通信技术 北京航空航天大学PC接口通信与Windows编程 精英科技 中国电力出版社MAX232,MAX485 Datasheet,AT89C51 DatasheetVisual C串口通信技术与工程实践人民邮电出版社,Southeast University,2004.07,总线与系统通讯讲义,第三节 通用串行总线,Southeast University,2004.07,3.1 简介,通用串行总线就是Universal Serial Bus(USB),它是一种微机外设的接口。其基本思路是采用通用连接器和自动配置及热插拔技术和相应软件,实现资源共享和外设
11、的简单快速连接。它有以下技术优势:使用USB不需要扩展插卡,无须开发最底层驱动程序。连接USB外设,带电即插即用。得到众多公司的支持。传输速率为 1.5MBps-12MBps。目前的USB2.0则达到了480MBps。通过Hub最多可支持127个外设。,Southeast University,2004.07,3.2 USB系统组成,USB主控制器/根集线器(USB Host Controller/Root Hub)负责产生传输处理。主控制器对数据执行一个并行到串行的转换,建立USB的传输处理,并传给根集线器后在总线上发送。USB集线器(USB Hub)使USB系统扩展。它由控制器和中继器组成
12、,控制器管理主机和集线器之间的通信及帧定时,中继器负责连接的建立和断开。USB设备分为Hub设备和功能设备两种。功能设备就是接在Hub上的外设,它能在总线上发送和接受数据或控制信息,是完成某项具体功能的硬件设备。,3.2.1 USB硬件,Southeast University,2004.07,3.2.2 USB层次拓扑图 USB采用一种层次化的新结构,该结构以集线器为USB设备提供连接点。USB主控制器包含集线器,是系统中所有USB端口的起点。下图所示的是USB一种层次化的拓扑结构。,3.3 USB系统的接口信号与电气特性3.3.1 USB接口 USB总线包括4根信号线,用来传送信号和提供电
13、源。其中,D+(绿),D-(白)为信号线,它们是一对双绞线;另两根是电源线(红)和地线(黑)。另外有些连接线还有屏蔽线绕在4根信号线的外侧。,Southeast University,2004.07,Southeast University,2004.07,3.3.2 电气特性,USB主机或根Hub对设备提供的对地电源电压为V,设备吸入的最大电流为500 mA。当USB设备首次被主机检测到时,设备吸入电流应小于100 mA。USB设备有两种供电方式,自给方式(设备自带电源)和总线供给方式。USB Hub采用自给方式。为了省电,USB主机有一个独立于USB的电源管理系统。,3.4 传输类型 US
14、B有4种基本的传输类型:控制传输控制传输是双向的,控制传输主要是做配置设备用,也可以做设备的其他特殊用途。每个USB设备必须用端点0来完成控制传送,它用在当USB设备第一次被USB主机检测到时,与USB主机交换信息、提供设备设置、对外设设定和传送状态这类双向通信。批量传输批传输可以是单向的,也可以是双向。它用于传送大批数据,这种数据的时间性不强,但要确保数据的正确性。在包的传输过程中,出现错误,则重传。如扫描仪、打印机。中断传输中断传输是单向的,且仅输入到主机。它用于不固定的、少量的数据传送。当设备需要主机为其服务时,向主机发送此类信息。如鼠标、键盘。等时传输等时传输可以是单向的也可以是双向的
15、,用于传输连续性、实时的数据。传输速率固定,时间性强,传输中数据出错并不重传。如数字音视频设备。,Southeast University,2004.07,Southeast University,2004.07,3.5 包种类、包格式及包交换 通过USB总线的传输包含一个或多个交换(Transaction),包是组成USB交换的基本单位。包主要有标志包(Token),数据包(Data),握手包(Handshake),特殊包(Special)。USB总线上每一次交换至少需要前面的三个包。所有的包都由该包的PID域来表征包含义。如下图:,3.5.1 标志包 USB总线是一种基于标志的总线协议,因
16、此所有的交换都以标志包为首部。标志包定义了要传输的交换类型。有以下四类包:帧开始包(SOF)、接受包(IN)、发送包(OUT)、设置包(SETUP)。,Southeast University,2004.07,Southeast University,2004.07,一个数据包包括PID(Packet IDentifier)域、数据域和CRC(Cyclic Redundancy Check)域三个部分。PID域用于确认数据包类型;数据域为具体的内容;CRC域为循环冗余校验。握手包由设备用来报告交换的状态,通过四种不同类型的握手包可以传送不同的结果报告。握手包是由数据的接受方发向数据的发送方的。
17、等时传输没有握手包。该包只有一个PID域。特殊包用于主机对低速设备通讯前,主机发给设备的预告包。它由一个同步序列和一个全速传送的PID域组成。之后等待4个高速字节时间,以便Hub打开低速端口并准备接收低速信号。,3.5.2 数据包、握手包、特殊包,Southeast University,2004.07,3.5.3 包交换,所有USB总线上的传输都是进行包的交换。每次交换至少涉及到标志包、握手包和数据包。USB设备之间的传输首先由主机发出标志包(Token又称令牌),标志包中有地址码、端点号、传输方向和传输类型等信息。其次是数据源向数据目的地发送的数据包(Data)或者发送无数据传输的指示信息
18、。在一次交换中,数据包最多可以携带的数据为1023B。最后是数据接受方往数据发送方回送一个握手包,提供本次数据传输的反馈信息。在四种传输方式下,分别有对应的包交换模式,以下是中断传输下的包交换示意:,Southeast University,2004.07,当USB设备在USB总线上连接或移走时,主机通过总线枚举过程确认和管理设备状态的变迁。枚举过程说明如下:USB设备连接到Hub后,Hub通知主机发生设备接入事件设备进入连接(Attached)状态。Hub中与该设备相接的端口处于关闭状态。主机检测Hub,确认设备接入事件和接入端口。主机将该端口使能,并传送一个RESET命令。Hub持续送出1
19、00ms的RESET信号,信号一结束,端口打开。Hub提供100mA的电流,USB进入上电(Powered)状态,响应默认地址。在USB设备收到唯一地址前,通过设备默认地址访问端点0对应管道,主机读取设备的描述器来获得设备默认管道的最大数据传输量。设备处于地址默认(Default)状态。主机给USB设备分发一个唯一的地址,设备进入地址(Addressed)状态。主机读取设备的配置信息。主机向设备分发一个配置值。设备进入配置(Configured)状态,所有端点准备就绪可以开始工作,设备可以使用。,3.6 USB设备状态和总线枚举,状态转换图,Southeast University,2004.
20、07,3.7设计指南,使设备实现USB通讯功能通常有两种方式,使用具有USB控制器的MCU和使用专用USB接口芯片。典型电路的原理图和版图设计规则一般在产品使用文档中都会有所提及。使用USB接口芯片如果想要达到标称的最大速度,就需要是DMA工作方式,由于USB接口芯片的控制器多半是由速度不快的微控制器构成,简单的通过微控制器访问总线的模式读取发送USB数据所能达到的速度是非常有限的。USB主控制器端的编程主要是PC驱动程序的编写.其涉及到Windows WDM驱动程序的编写,相对复杂。但有些公司已经提供了Windows的驱动程序,并已经编写好了软件开发包,使PC端软件开发大为简化。在USB设备
21、端的编程工作主要集中在枚举过程的实现,即要实现USB协议的各种标准请求。因为枚举过程较为复杂,其软件编写也需要很大工作量。网络上有一些资源可以参考,如周立功单片机网站上有USBD12下位机驱动程序的下载。,Southeast University,2004.07,Southeast University,2004.07,3.8 USB接口芯片PDIUSBD12,遵循USB1.1规范内置SIE,FIFO,收发器和稳压电路高性能USB接口器件兼容各种单片机和微处理器的2MBps并行接口速度全自动DMA操作集成320字节FIFO存储器双缓存方案易于实现实时数据传输可编程的时钟频率发生内置上电复位和低
22、电压复位电路SO-28和TSSOP-28两种封装工业级工作温度范围:-40到+858KV的芯片级ESD电压保护双电压工作方式:3.30.3V或5V(3.6到5.5V),3.9参考资料 PhilipsUSBD12 DatasheetUSB Specificationwww.usb.orgWindows WDM 设备驱动程序开发指南机械工业出版社USB 总线接口开发指南国防工业出版社2.0硬件设计清华大学出版社,Southeast University,2004.07,总线与系统通讯讲义,第四节 Ethernet,Southeast University,2004.07,用以太网技术构成的局域网在
23、我们生活中无处不在。如果设备和系统具有通过以太网来通讯的功能,那么其就可以利用以太网许多有利条件。相对于以太网上PC这样的高速的吞吐量大的主机来说,我们通常的系统都是低速的吞吐量小的,我们在这里称之为小系统。这样的小系统存储器容量不大,处理速度不高。也没有必要支持100M网络。采用以太网通讯的小系统将具有以下特点:n系统可以从局域网内任意一个节点接入n和现有的网络设备和主机不冲突,可以共用一个网络,不用重新铺设通讯线路n系统的扩展很方便,可以使用标准网络设备进行总线的延长n可以通过更改设备的IP地址来使多个设备接入局域网n如果设备的运算能力较强,可以达到很高的通讯速度 小系统通过以太网传输数据
24、,难点在于实现TCP/IP协议栈。通常我们只在一个局域网内通讯就足够了。因而没有必要完全实现TCP/IP协议栈,通常要实现的是MAC级协议,简易的ARP协议,简易的IP和UDP协议,最好能实现PING功能。而TCP协议过于复杂,不适合在小系统上实现。,4.1 简介,4.2 协议层次 在TCP/IP协议族中,有很多种协议。在这里我们只讨论一些方便系统之间通讯和其相关的协议。,Southeast University,2004.07,TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议。虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。UDP为应用程序发送和接收数据
25、报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与TCP不同的是,UDP是不可靠的,它不能保证数据报能安全无误地到达最终目的。IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。在这里我们不讨论的IP数据如何进行路由选择。ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。尽管ICMP主要被IP使用,但应用程序也有可能访问它。ARP(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来
26、转换IP层和网络接口层使用的地址。,Southeast University,2004.07,要使系统具有网络通讯功能,就需要实现TCP/IP协议栈,协议栈其实是一组逻辑分层的函数,一个完整的协议栈是很庞大的,在实际应用中对于不同的系统的不同需要,我们可以有选择的实现部分协议栈的功能。因为以太网在局域网中占绝大部分,所以我们只讨论基于以太网的网络通讯的实现。如果系统需要和PC之间进行通讯,需要完成的工作有一下几点:n必须实现以太网数据链路层的协议。n实现简单的ARP。n要实现IP协议。n实现部分ICMP协议,最重要的,实现PING功能,以方便系统的调试。n不建议采用TCP协议进行网络通讯,因为
27、其过于庞大和复杂,不适合小系统上实现。n推荐实现UDP协议,并使用UDP协议进行系统间通讯。,Southeast University,2004.07,总线与系统通讯讲义,第四节 Ethernet,Southeast University,2004.07,在系统的硬件结构上主要有以下两种,在以太网体系结构中,传输介质是可以不同,通常有屏蔽/非屏蔽双绞线,粗缆,细缆,光缆几种,同时还有不同的通讯速度。在硬件体系上,将其分为两部分,与通讯介质相关的一部分PHY和与介质无关的一部分MAC,在两部分之间通过MII媒体独立接口进行通讯。,4.3 硬件架构,4.3.1 MAC+PHY+CPU,Southe
28、ast University,2004.07,MAC和PHY由一个芯片完成,如RTL8019,芯片与MCU之间通过特定总线相连,一般有专用总线,PCI总线,PCMCIA总线,CardBus总线几种。芯片前端接网络隔离变压器,然后接RJ45水晶头。,4.3.2 PHY+CPU 某些面向网络应用的MCU,其内置了MAC部分,这样的系统中,只需要外接PHY(如RTL8201),隔离变压器和RJ45接头即可。,Southeast University,2004.07,4.4软件编程指南 4.4.1 Sockets,PC实现与ucLinux实现 套接字规范描述了网络编程的一般性接口,是由Berkley
29、UNIX 系统软件发布机构设计用来实现套接字接口的一套函数库。其在uC Linux上的实现与Windows上实现及其相似。这里介绍主要的套接字。n socket()创建新的套接字n accept()在套接字中接受连接n connect()建立一个到同位体的连接n bind()使一个局部地址和套接字相关联n listen()为输入建立一个收听套接字n send()通过以建立的套接字发送数据n recv()从套接字接受数据n shutdown()禁止套接字上的发送和接受工作n closesocket()关闭套接字,Southeast University,2004.07,右图反应了客户端到服务器端
30、连接的操作。所谓服务器端是指等待连接的计算机,客户机是指最初向服务器发出连接的计算机。在服务器端,计算机首先用socket()函数创建一个套接字,并用bind()函数限定一个名字。之后,服务器用listen()函数来侦听这一连接。当客户调用connect()函数的时候,服务器随后调用accept()函数。之后,客户端和服务器通过send()和recv()函数发送和接受数据。等到数据传输结束后,用closesocket()函数结束套接字。,Southeast University,2004.07,4.4.2 TCP,UDP与协议栈 UDP是我们设计具有网络通讯功能的系统中较合适的协议,因为UDP
31、不面向连接,这与我们常常采用的串口通讯有一样的特性,在UDP基础上,我们可以拟定自己的协议,与应答机制。之所以要一直实现到UDP协议层,是因为在PC端,无论是Windows还是Linux都有明确的编程接口,就是常说的Socket套接字,名字并不重要,其实质是一组函数,可以在系统之间进行TCP和UDP通讯。如果用户想在下一层如(IP和MAC层)通讯,必须重新编写网络驱动程序,难度很高,与其如此,不如在下位机上实现UDP,因为从IP到UDP的协议层编写并不复杂。如果系统间不需要与PC通讯,那么在一个子网内,我们需要实现的协议栈还可以简化,如我们可以只实现IP协议,或者更直接的,只实现MAC层协议。
32、在MAC层上实现我们自有的协议而与IP协议不冲突,这可以通过修改MAC协议头来实现。,Southeast University,2004.07,4.4.3 速度与效率 作为一个运算能力有限的系统,其不可能充足使用全部网络资源,通常情况下,只能使用网络资源的一小部分。实际验证中,使用Sumsang s3c4510网络用处理器arm7核心,主频50MHz,100M网络MAC,运行uclinux操作系统,实际传输试验中使用UDP协议加上层自定义的简单协议,只能达到8Mbit/s的有效速率,实际网络资源使用不到10%。如果用普通单片机实现UDP传输实际速率更低。所以在设计具有网络通讯功能的小系统时网络
33、速度不是主要限制条件。,Southeast University,2004.07,Southeast University,2004.07,4.5 典型硬件4.5.1 RTL8019AS RTL8019AS 是一种高度集成的以太网芯片,能简单的实现Plug and Play,并兼容NE2000,掉电等特性。由于它拥有三种等级的掉电模式,所以它是作为绿色电脑的网络设备的理想选择。在全双工模式下,如果是连接到一个同样是全双工的交换机或集线器,就可实现同时接收和发送。这个特性虽然不能把传输速率从10Mbps提高到20Mbps,但是在执行以太网CSMA/CD协议时可以避免更多的冲突的发生。而Micro
34、softsPlug and Play功能就可以为用户减轻对资源配置的烦恼(如IRQ I/O Menory address 等)。又或者是在一些特殊的场合,为了对一些不支持Microsofts Plug and Play 的器件的兼容,RTL8091AS 还可以选择跳线模式或非跳线模式。为了完整的支持PnP,RTL8019AS提供了自动检测10BaseT 集成收发器(RJ45)还是AUI BNC 接口。除了10BaseT可以自动极性修正外,8路中断请求和16 位I/O地址都可以根据资源配置机动调节。RTL8019AS 支持16K 32K 64K 字节的BROM 另外还支持FLASH MENORY
35、和页访问方式,最大支持4M字节(16K*256)此外还支持在运行完BROM后释放内存,以供系统其他程序的运行。RTL8019AS 在片内已经集成了16K 字节的SRAM。,特性n 支持PnP 自动检测模式n 支持Ethernet II 和 IEEE802.3 10Base5,10Base2,10BaseTn 软件兼容8 位或16 位的NE2000 模式n 支持跳线和非跳线模式n 支持在非跳线模式下的Microsofts Plug and Play 配置n 支持在全双工模式下的双倍信道带宽n 内建数据预取功能来改善性能n 支持UTP AUI BNC 的自动检测n 在10BaseT 下支持自动极性
36、修正n 支持8 路中断请求IRQn 支持16 位I/O 地址n 支持以16K 32K 64K 和16K 每页最多256 页的访问方式来访问BROMn 支持在远程启动以后取消BROM 对芯片的控制n 支持对FLASH 的读写n 内建16K SRAMn 可用9346 来保存配置和ID 参数n 可以在板上对9346 进行编程n 支持四盏可编程诊断LED,Southeast University,2004.07,4.5.2 RTL8201RTL8201是10M/100M以太网PHY,Southeast University,2004.07,Southeast University,2004.07,So
37、utheast University,2004.07,隔离变压器,8052单片机控制RTL8019网卡的电路图,4.6参考资料TCP/IP详解,卷1:协议 电子工业出版社实战Linux Socket编程 西安电子科技大学出版社Visual C网络通讯协议分析与应用实现人民邮电出版社RTL8019 Datasheet,Southeast University,2004.07,总线与系统通讯讲义,第五节 IIC总线,Southeast University,2004.07,Philips公司开发了一个简单的双向两线总线。实现IC之间的有效控制。这个总线就称为Inter IC 或I2C 总线。所有符
38、合I2C总线的器件都包含了一个片上接口,使器件之间直接通过I2C 总线通讯。I2C 总线的一些特征:只要求两条总线线路,一条串行数据线SDA,一条串行时钟线SCL。每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器。它是一个真正的多主机总线。如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。,5.1 简介,总线与系统通讯讲义,Southeast University,2004.07,SDA 和SCL 都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压。当总线空闲时这两条线路都是高电平。连接到总
39、线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。,5.2 总体特征,SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。见下图:,在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后总线被认为再次处于空闲状态。起始状态和终止状态如下图所示:,Southeast University,2004.07,1。开始总线周期。2。写入设备控制字,时钟上升沿锁存至设
40、备。3。ACK:应答,主机写入控制字后,数据线SDA为高,此时主机读取总线状态,若设备正确受到数据则将总线拉低,否则数据线将保持为高。主机读取到应答状态正确,则可以继续写入数据。4。写入地址,时钟上升沿锁存至设备。5。ACK。6。写入读控制字7。ACK。8。读取数据,在时钟下降设备将数据输出至总线,此时主机即可读取。9。结束总线周期。,5.3 典型时序,5.3.1 读时序,Southeast University,2004.07,1。开始总线周期。2。写入地址控制字,时钟上升沿锁存至设备。3。ACK:应答,主机写入控制字后,数据线SDA为高,此时主机读取总线状态,若设备正确受到数据则将总线拉低
41、,否则数据线将保持为高。主机读取到应答状态正确,则可以继续写入数据。4。写入地址,时钟上升沿锁存至设备。5。ACK。6。写入数据,时钟下降沿锁存至设备。7。ACK。8。结束总线周期。,5.3.1 写时序,总线与系统通讯讲义,第五节 IIC总线,Southeast University,2004.07,在使用IIC接口器件时,注意在时钟和数据线上加上拉电阻。有些MCU具有IIC接口模块,其已经将设备控制字和数据映射到对应的特殊功能寄存器。只要读写这些寄存器就可以访问外部IIC器件了,这样的器件接口程序编写较为方便。如果MCU没有IIC接口模块,此时需要编写程序利用MCU的GPIO来模拟IIC接口
42、时序。此时编程较为复杂。网络上有许多资源可以供参考。,5.4 设计指南,5.5典型芯片 IIC接口器件有许多种类,设计最常用的器件是串行EEPROM,例如24C0124C256。5.6参考资料THE I2C-BUS SPECIFICATION,第六节 SPI总线,Southeast University,2004.07,SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家
43、生产的多种标准外围器件直接接口。由于SPI系统总线一共只需34位数据和控制线即可实现与具有SPI总线接口功能的各种I/O器件进行接口,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。利用SPI总线可在软件的控制下构成各种系统。如1个主MCU和几个从MCU、几个从MCU相互连接构成多主机系统(分布式系统)、1个主MCU和1个或几个从I/O设备所构成的各种系统等。,6.1 简介,6.2 信号定义串行时钟线SCK低电平有效的从机选择线SS输出/从机输入数据线MOST主机主机输入/从机输出数据线MISO另外有的SPI接口芯片带有中断信号线INT或INT、
44、有的SPI接口芯片没有主机输出/从机输入数据线MOSI。,在大多数应用场合,可使用1个MCU作为控机来控制数据,并向1个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。其数据的传输格式是高位(MSB)在前,低位(LSB)在后。,Southeast University,2004.07,6.3 典型时序读时序:1。升高CS以启动设备。2。在时钟SK的上升沿将命令字110锁存至设备。命令字由DI输出。3。在时钟SK的上升沿将地址锁存至设备。命令字由DI输出。4。在时钟SK的下降沿将数据由DO读出。5。降低CS以停止设备。,总线写时序1。升高CS以启动设备2。在时钟SK的上升
45、沿将命令字锁存至设备。命令字由DI输出。3。在时钟SK的上升沿将地址字锁存至设备。地址字由DI输出。4。在时钟SK的上升沿将数据写入设备。数据由DI输出。5。降低CS以停止设备。,总线与系统通讯讲义,第六节 SPI总线,Southeast University,2004.07,有些MCU具有SPI接口模块,其已经将设备控制字和数据映射到对应的特殊功能寄存器。只要读写这些寄存器就可以访问外部SPI器件了,这样的器件接口程序编写较为方便。如果MCU没有SPI接口模块,此时需要编写程序利用MCU的GPIO来模拟SPI接口时序。此时编程较为复杂。网络上有许多资源可以供参考。,6.4 编程指南,6.5
46、典型芯片6.5.1 93c46 EEPROM,6.5 典型芯片6.5.2 X5045,CPU Supervisor with 4K SPI EEPROM,总线与系统通讯讲义,第七节 ISA总线,Southeast University,2004.07,ISA总线是采用80286 CPU的IBM PC/AT 机中使用的总线,该总线同8位的PC/XT总线保持了兼容性。它在8位的PC/XT总线的基础上扩展而成16位总线结构。这种总线结构是在不改变原来的XT总线的前提下增加数条信号线,从而解决寻址与数据上的问题,同时还增加了一些内存的控制信号。由于这种总线的开放性,制定统一标准很重要。为此国际电子电气
47、工程师协会(IEEE)专门制订了以PC/AT总线为标准的工业标准体系结构ISA,因此ISA总线就成为PC/AT总线的另一个名称。从硬件角度看,ISA总线是一个单用户的结构,缺乏智能成分。ISA总线的8个扩展槽共用一个DMA请求。,7.1 简介,总线与系统通讯讲义,第七节 ISA总线,Southeast University,2004.07,ISA总线共有98根线,均连接到主板的ISA总线插槽上。ISA插槽是长度为138.5mm的黑色插槽,一般在主板的最外侧。98根线可分为以下五类:地址线、数据线、控制线、时钟线和电源线。地址线:SA0-SA19和LA17-23。共24根地址线,寻址容量为16M
48、。数据线:SD0-SD15。控制线:如地址允许,地址锁存,I/O读写,存储器读写,中断请求输入,DMA回答信号,系统复位信号。,7.2 ISA总线信号简介,总线与系统通讯讲义,第八节 PCI总线,Southeast University,2004.07,PCI(Peripheral Component Interconnect,外部部件互连)局部总线最早在1992年6月推出1.0版本,当时只支持32位的数据宽度。而1995年6月推出的PCI局部总线2.1版本则支持64位的数据通路以及66MHz的总线时钟。运行在33MHz下的32位PCI总线,其数据总线传输速率可达132MB/s;而运行在66M
49、Hz的总线时钟下可达264MB/s;对于64位的PCI其传输速率可达528MB/s,这些都足够支持高清晰度电视信号和实时的三维虚拟现实。PCI总线未与CPU直接相连,而是采用一个桥接器使CPU与PCI总线相连,它是位于CPU局部总线与标准的I/O扩展总线之间的一种总线结构。由于PCI是从CPU局部总线中经过桥接器隔离出来的,因此不会像VESA总线那样存在CPU负载过重的问题,允许主板上有10个负载,但这并不是说主板上可以加10个插槽,因为采用PCI总线的主板,一般已将软盘、硬盘控制器(如:IDE接口)以及多功能I/O接口集成到了主板上,实际上在大多数Pentium级的PCI主板上,一般都只安排
50、了四个左右的PCI扩展槽。,8.1 简介,PCI总线有以下几大特点:*独立于CPU;*传输效率高;*多总线共存;*支持突发传输;*支持总线主控方式;*采用同步操作;*支持两种电压下的扩展卡;*具有即插即用功能;*合理的管脚安排和预留扩展空间。,Southeast University,2004.07,PCI信号可分为必备和可选两大类。对于取得了总线控制权的主设备它的必备信号49条;而从设备必备信号为47条。可选信号为51条,用于64位扩展、中断请求和高速缓存支持等。PCI总线包括以下几类信号:系统接口信号 系统时钟输入和系统复位两组信号 地址与数据接口 有32位分时复用数据地址总线,4位总线命