总线与系统通讯讲义

上传人:沈*** 文档编号:170591713 上传时间:2022-11-21 格式:PPT 页数:86 大小:1.60MB
返回 下载 相关 举报
总线与系统通讯讲义_第1页
第1页 / 共86页
总线与系统通讯讲义_第2页
第2页 / 共86页
总线与系统通讯讲义_第3页
第3页 / 共86页
点击查看更多>>
资源描述
总线与系统通讯讲义总线与系统通讯讲义 v第一节第一节 总论总论v第二节第二节 串行异步通信总线串行异步通信总线v第三节第三节 通用串行总线通用串行总线USBv第四节第四节 Ethernetv第五节第五节 IIC总线总线v第六节第六节 SPI总线总线v第七节第七节 ISA总线总线v第八节第八节 PCI总线总线 Southeast University2004.07总线与系统通讯讲义总线与系统通讯讲义 第一节第一节 总论总论v定义:总线是连接系统有关部件的一组信号线,是定义:总线是连接系统有关部件的一组信号线,是系统中用来传送信息代码的公共通路。系统中用来传送信息代码的公共通路。v片总线片总线(Chip Bus,C-BUS):又称元件级总线,:又称元件级总线,把部件内各种不同器件连接在一起的信号线。把部件内各种不同器件连接在一起的信号线。IIC,SPI。v内部总线内部总线(Internal Bus,I-BUS):即系统总线,:即系统总线,用于微机各部件之间的信息传输。用于微机各部件之间的信息传输。ISA,PCI。v外部总线外部总线(External Bus,E-BUS):又称通信总线,:又称通信总线,用于设备之间或微机与设备之间的通信。如用于设备之间或微机与设备之间的通信。如USB,232,485,ethernet。Southeast University2004.07总线与系统通讯讲义总线与系统通讯讲义 第二节第二节 串行异步通信总线串行异步通信总线v2.1 UART与与RS-232C,RS-485 Southeast University2004.07 UART(Universal Asynchronous Receive/Transmitter)通用异步收通用异步收发器发器。在异步串行通信总线中,。在异步串行通信总线中,RS-232C和和RS485是比较广泛的两种总线标准。是比较广泛的两种总线标准。这两种标准只是在电平标准上作了一定的约定。这两种标准只是在电平标准上作了一定的约定。v2.2 串行异步通信的数据格式串行异步通信的数据格式110000 1 0 1110 0 0起始位数据位0低高校验位空闲位停止位完整一帧 Southeast University2004.07 RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:020Kbps。1.电气特性 RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。逻辑“1”=-3V-15V “0”=+3V+15V 与TTL逻辑电平不一样,可用TTL/EIA电平转换器进行,如MC1488,MC1489。v2.3 EIA-RS-232Cv2.3.1 RS-232C简介简介 Southeast University2004.07 采用EIA电平比TTL电平具有更强的抗干扰性能。另外,MAX232省电可连接二对收/发线,只用单电源。2.机械特性1)连接器(Connector)常用二种:DB-25型 25脚。只用9个信号(2个数据线,6个控制线,1个地址)如图:1234DB-25型连接器5678911132522201814发送电流(-)发送电流(+)DCDGNDDSRCTSRTSRXDTXD(-)接收电流(+)接收电流 Southeast University2004.07123456789DSRRTSCTSRIDCDRXDTXDDTRGNDDB-9型连接器 DB-9型 9针,9针全用,如右图。3.协议要求 RS-232C仅仅在信号传输中电平的要求等物理方面作出了规定,它构成协议的一个部分。而数据传输的字节内容所代表的含义也是协议的重要部分。2.3.2 接口芯片及典型电路接口芯片及典型电路 接口芯片有:接口芯片有:TTLRS-232C:MC1488,75188;RS-232CTTL:MC1489,75189;TTLRS-232C:MAX232,ICL232等等。等等。Southeast University2004.07 Southeast University2004.07MC1488MC1489RS-232TTLEIA电平+15V+15VTTL+15V 利用TTLRS-232C接口芯片MC1488和RS-232CTTL接口芯片MC1489实现TTL与RS-232C相互转换的一种电路如下:Southeast University2004.072.4.1 电气特性电气特性 总线只有信号线A和B,当电平A-B200mV时,线路上表示传输信号“1”;当B-A200mV时,线路上表示传输“0”。仍然遵循串行异步通信数据的传输格式,这样信号就可以以差分方式得到长距离扩展。而且总线数目少,连接灵活方便。2.4 RS-485简介简介 RS-232C标准总线系统只能一对多通信,而RS-485标准则可以多机通信。没有硬件上的主从约束,任何时刻所有挂在RS-485总线上的UART终端都在监听总线上的数据。一旦与自身要求符合,立即开始通信。否则丢弃所收到的数据。2.4.2 接口芯片及典型电路接口芯片及典型电路 MAX481、MAX483、MAX485、MAX487等是RS485总线的一些接口芯片,差别体现在半/全双工工作方式、数据传输速率、转换率限制、功耗关机、静态电流大小和总线上允许的收发器数目等。Southeast University2004.07 Southeast University2004.072.4.3 多机通讯与硬件连接多机通讯与硬件连接 多机通讯系统可以设计成全双工通讯和半双工通讯。半双工通讯一般采用多机通讯系统可以设计成全双工通讯和半双工通讯。半双工通讯一般采用主机查询方式,分机只有在主机允许下才能驱动总线,使用完总线之后立即释放主机查询方式,分机只有在主机允许下才能驱动总线,使用完总线之后立即释放总线。在全双工通讯时,也是通常采用由主机查询的工作方式,需要与主机通讯总线。在全双工通讯时,也是通常采用由主机查询的工作方式,需要与主机通讯的分机占有总线。但要注意不要使多个分机同时长时间驱动主机接受总线。的分机占有总线。但要注意不要使多个分机同时长时间驱动主机接受总线。Southeast University2004.072.5 设计指南设计指南2.5.1 MCU软件设计软件设计 对于一个基于对于一个基于UART的通讯控制系统,下位机的编程主要是对的通讯控制系统,下位机的编程主要是对UART进行编进行编程。在单片机作为从机的应用中,由于单片机一般通过内部的特殊功能寄存器程。在单片机作为从机的应用中,由于单片机一般通过内部的特殊功能寄存器(SFR,Special Functional Register)对)对UART管理,所以从实现的角度来说,管理,所以从实现的角度来说,编程重在熟悉串口工作寄存器(编程重在熟悉串口工作寄存器(TMOD,SCON,TI,RIaccording to 51)的使用以及串口中断服务程序的实现。的使用以及串口中断服务程序的实现。2.5.2 PC软件设计软件设计 由于由于PC机性能稳定,功能强大,人机界面非常友好,又有很成熟的软件开发环机性能稳定,功能强大,人机界面非常友好,又有很成熟的软件开发环境,所以境,所以PC机在多机控制系统中,常常作为主机。在机在多机控制系统中,常常作为主机。在32位位Windows系统中,串系统中,串口和其他通讯设备一样是作为文件来处理的。串口的打开,关闭,读写所用的函口和其他通讯设备一样是作为文件来处理的。串口的打开,关闭,读写所用的函数和操作文件的函数完全一致。如数和操作文件的函数完全一致。如CreateFile()()用于打开串口用于打开串口CloseHandle()()用于关闭串口用于关闭串口ReadFile()()读串口接收到的数据读串口接收到的数据WriteFile()()向串口发送数据向串口发送数据GetCommState(),(),SetCommState()()配置串口配置串口GetCommProperties()()得到串口属性得到串口属性 另外,另外,Windows的的COM控件也对串口进行了封装。可以使用控件也对串口进行了封装。可以使用MSComm控件来控件来进行串口编程。进行串口编程。PC与单片机通讯一定要注意波特率的一致,在与单片机通讯一定要注意波特率的一致,在PC端,如果打开串口的波特端,如果打开串口的波特率不存在或者说系统不支持(指率不存在或者说系统不支持(指API函数),系统并不会报错,而是会选择相近的函数),系统并不会报错,而是会选择相近的波特率通讯。这样有可能导致上位机和下位机通讯波特率不一致,通讯不成功。波特率通讯。这样有可能导致上位机和下位机通讯波特率不一致,通讯不成功。2.6参考资料参考资料 vPC机及单片机数据通信技术机及单片机数据通信技术 北京航空航天大学北京航空航天大学vPC接口通信与接口通信与Windows编程编程 精英科技精英科技 中国电力出版社中国电力出版社vMAX232,MAX485 Datasheetwww.maxim-,vAT89C51 DvVisual C串口通信技术与工程实践串口通信技术与工程实践人民邮电出版社人民邮电出版社 Southeast University2004.07总线与系统通讯讲义总线与系统通讯讲义 第三节第三节 通用串行总线通用串行总线 Southeast University2004.07v3.1 简介简介 通用串行总线就是Universal Serial Bus(USB),它是一种微机外设的接口。其基本思路是采用通用连接器和自动配置及热插拔技术和相应软件,实现资源共享和外设的简单快速连接。它有以下技术优势:p使用USB不需要扩展插卡,无须开发最底层驱动程序。p连接USB外设,带电即插即用。p得到众多公司的支持。p传输速率为 1.5MBps-12MBps。目前的USB2.0则达到了480MBps。p通过Hub最多可支持127个外设。Southeast University2004.073.2 USB系统组成系统组成USB主控制器主控制器/根集线器(根集线器(USB Host Controller/Root Hub)负责产生传输处理。主控制器对数据执行一个并行到串行的负责产生传输处理。主控制器对数据执行一个并行到串行的转换,建立转换,建立USB的传输处理,并传给根集线器后在总线上发的传输处理,并传给根集线器后在总线上发送。送。USB集线器集线器(USB Hub)使使USB系统扩展。它由控制器和中系统扩展。它由控制器和中继器组成,控制器管理主机和集线器之间的通信及帧定时,继器组成,控制器管理主机和集线器之间的通信及帧定时,中继器负责连接的建立和断开。中继器负责连接的建立和断开。USB设备分为设备分为Hub设备和功能设备两种。功能设备就是接在设备和功能设备两种。功能设备就是接在Hub上的外设,它能在总线上发送和接受数据或控制信息,是上的外设,它能在总线上发送和接受数据或控制信息,是完成某项具体功能的硬件设备。完成某项具体功能的硬件设备。3.2.1 USB硬件硬件 Southeast University2004.073.2.2 USB层次拓扑图层次拓扑图 USBUSB采用一种层次化的新结构,该结构以集线器为采用一种层次化的新结构,该结构以集线器为USBUSB设备提供连接点。设备提供连接点。USBUSB主控主控制器包含集线器,是系统中所有制器包含集线器,是系统中所有USBUSB端口的起点。端口的起点。下图所示的是下图所示的是USB一种层次化的拓一种层次化的拓扑结构。扑结构。3.3 USB系统的接口信号与电气特性系统的接口信号与电气特性3.3.1 USB接口接口 USB总线包括总线包括4根信号线,用来传送信号和提供电源。其中,根信号线,用来传送信号和提供电源。其中,D+(绿),(绿),D-(白)为信号线,它们是一对双绞线;另两根是电源线(红)和地线(黑)。(白)为信号线,它们是一对双绞线;另两根是电源线(红)和地线(黑)。另外有些连接线还有屏蔽线绕在另外有些连接线还有屏蔽线绕在4根信号线的外侧。根信号线的外侧。Southeast University2004.07 Southeast University2004.07v3.3.2 电气特性电气特性 USB主机或根主机或根Hub对设备提供的对地电源电压为对设备提供的对地电源电压为4.75-5.25V,设备吸入的最大电流为,设备吸入的最大电流为500 mA。当。当USB设备首次被主设备首次被主机检测到时,设备吸入电流应小于机检测到时,设备吸入电流应小于100 mA。USB设备有两种供电方式,自给方式(设备自带电源)和设备有两种供电方式,自给方式(设备自带电源)和总线供给方式。总线供给方式。USB Hub采用自给方式。为了省电,采用自给方式。为了省电,USB主机主机有一个独立于有一个独立于USB的电源管理系统。的电源管理系统。3.4 传输类型传输类型 USB有有4种基本的传输类型:种基本的传输类型:3.4.1控制传输控制传输控制传输是双向的,控制传输主要是做配置设备用,也可以做设备的其他特殊用途。控制传输是双向的,控制传输主要是做配置设备用,也可以做设备的其他特殊用途。每个每个USBUSB设备必须用端点设备必须用端点0 0来完成控制传送,它用在当来完成控制传送,它用在当USBUSB设备第一次被设备第一次被USBUSB主机主机检测到时,与检测到时,与USBUSB主机交换信息、提供设备设置、对外设设定和传送状态这类双主机交换信息、提供设备设置、对外设设定和传送状态这类双向通信。向通信。3.4.2批量传输批量传输批传输可以是单向的,也可以是双向。它用于传送大批数据,这种数据的时间性不批传输可以是单向的,也可以是双向。它用于传送大批数据,这种数据的时间性不强,但要确保数据的正确性。在包的传输过程中,出现错误,则重传。如扫描强,但要确保数据的正确性。在包的传输过程中,出现错误,则重传。如扫描仪、打印机。仪、打印机。3.4.3中断传输中断传输中断传输是单向的,且仅输入到主机。它用于不固定的、少量的数据传送。当设备中断传输是单向的,且仅输入到主机。它用于不固定的、少量的数据传送。当设备需要主机为其服务时,向主机发送此类信息。如鼠标、键盘。需要主机为其服务时,向主机发送此类信息。如鼠标、键盘。3.4.4等时传输等时传输等时传输可以是单向的也可以是双向的,用于传输连续性、实时的数据。传输速率等时传输可以是单向的也可以是双向的,用于传输连续性、实时的数据。传输速率固定,时间性强,传输中数据出错并不重传。如数字音视频设备。固定,时间性强,传输中数据出错并不重传。如数字音视频设备。Southeast University2004.07 Southeast University2004.073.5 包种类、包格式及包交换包种类、包格式及包交换 通过通过USB总线的传输包含一个或多个交换(总线的传输包含一个或多个交换(Transaction),包是组成),包是组成USB交交换的基本单位。包主要有标志包(换的基本单位。包主要有标志包(Token),数据包(),数据包(Data),握手包),握手包(Handshake),特殊包(),特殊包(Special)。)。USB总线上每一次交换至少需要前面总线上每一次交换至少需要前面的三个包。的三个包。所有的包都由该包的所有的包都由该包的PID域来表征包含义。如下图:域来表征包含义。如下图:3.5.1 标志包标志包 USB总线是一种基于标志的总线协议,因此所有的交总线是一种基于标志的总线协议,因此所有的交换都以标志包为首部。标志包定义了要传输的交换类型。有换都以标志包为首部。标志包定义了要传输的交换类型。有以下四类包:帧开始包(以下四类包:帧开始包(SOF)、接受包()、接受包(IN)、发送包)、发送包(OUT)、设置包)、设置包(SETUP)。)。Southeast University2004.07 Southeast University2004.07 一个数据包包括一个数据包包括PID(Packet IDentifier)域、数据域和)域、数据域和CRC(Cyclic Redundancy Check)域三个部分。)域三个部分。PID域用于域用于确认数据包类型;数据域为具体的内容;确认数据包类型;数据域为具体的内容;CRC域为循环冗余校验。域为循环冗余校验。握手包由设备用来报告交换的状态,通过四种不同类型的握握手包由设备用来报告交换的状态,通过四种不同类型的握手包可以传送不同的结果报告。握手包是由数据的接受方发向数手包可以传送不同的结果报告。握手包是由数据的接受方发向数据的发送方的。等时传输没有握手包。该包只有一个据的发送方的。等时传输没有握手包。该包只有一个PID域。域。特殊包用于主机对低速设备通讯前,主机发给设备的预告包。特殊包用于主机对低速设备通讯前,主机发给设备的预告包。它由一个同步序列和一个全速传送的它由一个同步序列和一个全速传送的PID域组成。之后等待域组成。之后等待4个高个高速字节时间,以便速字节时间,以便Hub打开低速端口并准备接收低速信号。打开低速端口并准备接收低速信号。3.5.2 数据包、握手包、特殊包数据包、握手包、特殊包 Southeast University2004.073.5.3 包交换包交换 所有所有USBUSB总线上的传输都是进行包的交换。每次交换至少涉及到标志包、握手总线上的传输都是进行包的交换。每次交换至少涉及到标志包、握手包和数据包。包和数据包。USB设备之间的传输首先由主机发出标志包(设备之间的传输首先由主机发出标志包(Token又称令牌),标志包中又称令牌),标志包中有有地址码、端点号、传输方向和传输类型等信息。其次是数据源向数据目的地发送的地址码、端点号、传输方向和传输类型等信息。其次是数据源向数据目的地发送的数据包(数据包(Data)或者发送无数据传输的指示信息。在一次交换中,数据包最多可以)或者发送无数据传输的指示信息。在一次交换中,数据包最多可以携带的数据为携带的数据为1023B。最后是数据接受方往数据发送方回送一个握手包,提供本次。最后是数据接受方往数据发送方回送一个握手包,提供本次数据传输的反馈信息。数据传输的反馈信息。在四种传输方式下,在四种传输方式下,分别有对应的包交换模式,分别有对应的包交换模式,以下是中断传输下的包交换以下是中断传输下的包交换示意:示意:Southeast University2004.07 当当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 University2004.073.7设计指南设计指南 v 使设备实现使设备实现USB通讯功能通常有两种方式,使用具有通讯功能通常有两种方式,使用具有USB控制器的控制器的MCU和使用专用和使用专用USB接口芯片。典型电路的原理图和版图设计规则一般接口芯片。典型电路的原理图和版图设计规则一般在产品使用文档中都会有所提及。在产品使用文档中都会有所提及。v 使用使用USB接口芯片如果想要达到标称的最大速度,就需要是接口芯片如果想要达到标称的最大速度,就需要是DMA工作工作方式,由于方式,由于USB接口芯片的控制器多半是由速度不快的微控制器构成,接口芯片的控制器多半是由速度不快的微控制器构成,简单的通过微控制器访问总线的模式读取发送简单的通过微控制器访问总线的模式读取发送USB数据所能达到的速度数据所能达到的速度是非常有限的。是非常有限的。vUSB主控制器端的编程主要是主控制器端的编程主要是PC驱动程序的编写驱动程序的编写.其涉及到其涉及到Windows WDM驱动程序的编写,相对复杂。但有些公司已经提供了驱动程序的编写,相对复杂。但有些公司已经提供了Windows的的驱动程序,并已经编写好了软件开发包,使驱动程序,并已经编写好了软件开发包,使PC端软件开发大为简化。端软件开发大为简化。v在在USB设备端的编程工作主要集中在枚举过程的实现,即要实现设备端的编程工作主要集中在枚举过程的实现,即要实现USB协协议的各种标准请求。因为枚举过程较为复杂,其软件编写也需要很大工议的各种标准请求。因为枚举过程较为复杂,其软件编写也需要很大工作量。网络上有一些资源可以参考,如周立功单片机网站上有作量。网络上有一些资源可以参考,如周立功单片机网站上有USBD12下位机驱动程序的下载。下位机驱动程序的下载。Southeast University2004.07 Southeast University2004.073.8 USB接口芯片接口芯片PDIUSBD12u遵循遵循USB1.1规范规范u内置内置SIE,FIFO,收发器和稳压,收发器和稳压电路高性能电路高性能USB接口器件接口器件u兼容各种单片机和微处理器的兼容各种单片机和微处理器的2MBps并行接口速度并行接口速度u全自动全自动DMA操作操作u集成集成320字节字节FIFO存储器存储器u双缓存方案易于实现实时数据传双缓存方案易于实现实时数据传输输u可编程的时钟频率发生可编程的时钟频率发生u内置上电复位和低电压复位电路内置上电复位和低电压复位电路uSO-28和和TSSOP-28两种封装两种封装u工业级工作温度范围:工业级工作温度范围:-40到到+85u8KV的芯片级的芯片级ESD电压保护电压保护u双电压工作方式:双电压工作方式:3.30.3V或或5V(3.6到到5.5V)3.9参考资料参考资料 vPhilipsUSBD12 DatasheetPhilipsUSBD12 DvUSB SpecificationUSB Specificationwww.usbwww.usb.org.orgvWindows WDM Windows WDM 设备驱动程序开发指南设备驱动程序开发指南机械工业出版社机械工业出版社vUSB USB 总线接口开发指南总线接口开发指南国防工业出版社国防工业出版社v2.02.0硬件设计硬件设计清华大学出版社清华大学出版社 Southeast University2004.07总线与系统通讯讲义总线与系统通讯讲义 第四节第四节 Ethernet Southeast University2004.07 用以太网技术构成的局域网在我们生活中无处不在。如果设备和系统具有通过用以太网技术构成的局域网在我们生活中无处不在。如果设备和系统具有通过以太网来通讯的功能,那么其就可以利用以太网许多有利条件。以太网来通讯的功能,那么其就可以利用以太网许多有利条件。相对于以太网上相对于以太网上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 University2004.07TCP和和UDP是两种最为著名的运输层协议,二者都使用是两种最为著名的运输层协议,二者都使用IP作为网络层协议。作为网络层协议。虽然虽然TCP使用不可靠的使用不可靠的IP服务,但它却提供一种可靠的运输层服务。服务,但它却提供一种可靠的运输层服务。UDP为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与方的一个信息单元(例如,发送方指定的一定字节数的信息)。但是与TCP不同的是,不同的是,UDP是不可靠的,它不能保证数据报能安全无误地到达最是不可靠的,它不能保证数据报能安全无误地到达最终目的。终目的。IP是网络层上的主要协议,同时被是网络层上的主要协议,同时被TCP和和UDP使用。使用。TCP和和UDP的每组数的每组数据都通过端系统和每个中间路由器中的据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。在这里层在互联网中进行传输。在这里我们不讨论的我们不讨论的IP数据如何进行路由选择。数据如何进行路由选择。ICMP是是IP协议的附属协议。协议的附属协议。IP层用它来与其他主机或路由器交换错误报文层用它来与其他主机或路由器交换错误报文和其他重要信息。尽管和其他重要信息。尽管ICMP主要被主要被IP使用,但应用程序也有可能访问它。使用,但应用程序也有可能访问它。ARP(地址解析协议)和(地址解析协议)和RARP(逆地址解析协议)是某些网络接口(如(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换以太网和令牌环网)使用的特殊协议,用来转换IP层和网络接口层使用的层和网络接口层使用的地址。地址。Southeast University2004.07 要使系统具有网络通讯功能,就需要实现要使系统具有网络通讯功能,就需要实现TCP/IPTCP/IP协议栈,协议栈,协议栈其实是一组逻辑分层的函数,一个完整的协议栈是协议栈其实是一组逻辑分层的函数,一个完整的协议栈是很庞大的,在实际应用中对于不同的系统的不同需要,我很庞大的,在实际应用中对于不同的系统的不同需要,我们可以有选择的实现部分协议栈的功能。因为以太网在局们可以有选择的实现部分协议栈的功能。因为以太网在局域网中占绝大部分,所以我们只讨论基于以太网的网络通域网中占绝大部分,所以我们只讨论基于以太网的网络通讯的实现。讯的实现。如果系统需要和如果系统需要和PCPC之间进行通讯,需要完成的工作有一之间进行通讯,需要完成的工作有一下几点:下几点:n n必须实现以太网数据链路层的协议。必须实现以太网数据链路层的协议。n n实现简单的实现简单的ARPARP。n n要实现要实现IPIP协议。协议。n n实现部分实现部分ICMPICMP协议,最重要的,实现协议,最重要的,实现PINGPING功能,以方便系功能,以方便系统的调试。统的调试。n n不建议采用不建议采用TCPTCP协议进行网络通讯,因为其过于庞大和复杂,协议进行网络通讯,因为其过于庞大和复杂,不适合小系统上实现。不适合小系统上实现。n n推荐实现推荐实现UDPUDP协议,并使用协议,并使用UDPUDP协议进行系统间通讯。协议进行系统间通讯。Southeast University2004.07总线与系统通讯讲义总线与系统通讯讲义 第四节第四节 Ethernet Southeast University2004.07 在系统的硬件结构上主要有以下两种,在以太网体系结构中,在系统的硬件结构上主要有以下两种,在以太网体系结构中,传输介质是可以不同,通常有屏蔽传输介质是可以不同,通常有屏蔽/非屏蔽双绞线,粗缆,细缆,非屏蔽双绞线,粗缆,细缆,光缆几种,同时还有不同的通讯速度。在硬件体系上,将其分为光缆几种,同时还有不同的通讯速度。在硬件体系上,将其分为两部分,与通讯介质相关的一部分两部分,与通讯介质相关的一部分PHY和与介质无关的一部分和与介质无关的一部分MAC,在两部分之间通过,在两部分之间通过MII媒体独立接口进行通讯。媒体独立接口进行通讯。v4.3 硬件架构硬件架构4.3.1 MAC+PHY+CPU Southeast University2004.07 MAC和和PHY由一个芯片完成,如由一个芯片完成,如RTL8019,芯片与,芯片与MCU之间通过特定总线相连,一般有专用总线,之间通过特定总线相连,一般有专用总线,PCI总线,总线,PCMCIA总线,总线,CardBus总线几种。芯片前端接网络隔离变总线几种。芯片前端接网络隔离变压器,然后接压器,然后接RJ45水晶头。水晶头。4.3.2 PHY+CPU 某些面向网络应用的某些面向网络应用的MCU,其内置了,其内置了MAC部分,这样部分,这样的系统中,只需要外接的系统中,只需要外接PHY(如如RTL8201),隔离变压器和,隔离变压器和RJ45接头即可接头即可。Southeast University2004.074.4软件编程指南软件编程指南 4.4.1 Sockets,PC实现与实现与ucLinux实现实现 套接字规范描述了网络编程的一般性接口,是由套接字规范描述了网络编程的一般性接口,是由Berkley UNIX Berkley UNIX 系统系统软件发布机构设计用来实现套接字接口的一套函数库。其在软件发布机构设计用来实现套接字接口的一套函数库。其在uCuC Linux Linux上上的实现与的实现与WindowsWindows上实现及其相似。这里介绍主要的套接字。上实现及其相似。这里介绍主要的套接字。n nsocket()socket()创建新的套接字创建新的套接字n naccept()accept()在套接字中接受连接在套接字中接受连接n nconnect()connect()建立一个到同位体的连接建立一个到同位体的连接n nbind()bind()使一个局部地址和套接字相关联使一个局部地址和套接字相关联n nlisten()listen()为输入建立一个收听套接字为输入建立一个收听套接字n nsend()send()通过以建立的套接字发送数据通过以建立的套接字发送数据n nrecvrecv()()从套接字接受数据从套接字接受数据n nshutdown()shutdown()禁止套接字上的发送和接受工作禁止套接字上的发送和接受工作n nclosesocketclosesocket()()关闭套接字关闭套接字 Southeast University2004.07 右图反应了客户端到服务右图反应了客户端到服务器端连接的操作。所谓服务器端器端连接的操作。所谓服务器端是指等待连接的计算机,客户机是指等待连接的计算机,客户机是指最初向服务器发出连接的计是指最初向服务器发出连接的计算机。算机。在服务器端,计算机首先用在服务器端,计算机首先用socket()函数创建一个套接字,函数创建一个套接字,并用并用bind()函数限定一个名字。函数限定一个名字。之后,服务器用之后,服务器用listen()函数来函数来侦听这一连接。当客户调用侦听这一连接。当客户调用connect()函数的时候,服务器函数的时候,服务器随后调用随后调用accept()函数。之后,函数。之后,客户端和服务器通过客户端和服务器通过send()和和recv()函数发送和接受数据。等函数发送和接受数据。等到数据传输结束后,用到数据传输结束后,用closesocket()函数结束套接字。函数结束套接字。Southeast University2004.074.4.2TCP,UDP与协议栈与协议栈 UDP是我们设计具有网络通讯功能的系统中较合适的协议,因为是我们设计具有网络通讯功能的系统中较合适的协议,因为UDP不面向连接,这与我们常常采用的串口通讯有一样的特性,在不面向连接,这与我们常常采用的串口通讯有一样的特性,在UDP基础基础上,我们可以拟定自己的协议,与应答机制。上,我们可以拟定自己的协议,与应答机制。之所以要一直实现到之所以要一直实现到UDP协议层,是因为在协议层,是因为在PC端,无论是端,无论是Windows还是还是Linux都有明确的编程接口,就是常说的都有明确的编程接口,就是常说的Socket套接字,名字并不套接字,名字并不重要,其实质是一组函数,可以在系统之间进行重要,其实质是一组函数,可以在系统之间进行TCP和和UDP通讯。如果通讯。如果用户想在下一层如用户想在下一层如(IP和和MAC层层)通讯,必须重新编写网络驱动程序,难通讯,必须重新编写网络驱动程序,难度很高,与其如此,不如在下位机上实现度很高,与其如此,不如在下位机上实现UDP,因为从,因为从IP到到UDP的协议的协议层编写并不复杂。层编写并不复杂。如果系统间不需要与如果系统间不需要与PC通讯,那么在一个子网内,我们需要实现的通讯,那么在一个子网内,我们需要实现的协议栈还可以简化,如我们可以只实现协议栈还可以简化,如我们可以只实现IP协议,或者更直接的,只实现协议,或者更直接的,只实现MAC层协议。在层协议。在MAC层上实现我们自有的协议而与层上实现我们自有的协议而与IP协议不冲突,这协议不冲突,这可以通过修改可以通过修改MAC协议头来实现。协议头来实现。Southeast University2004.074.4.3速度与效率速度与效率 作为一个运算能力有限的系统,其不可能充足使用全部网络资源,作为一个运算能力有限的系统,其不可能充足使用全部网络资源,通常情况下,只能使用网络资源的一小部分。实际验证中,使用通常情况下,只能使用网络资源的一小部分。实际验证中,使用Sumsang s3c4510网络用处理器网络用处理器arm7核心,主频核心,主频50MHz,100M网络网络MAC,运行,运行uclinux操作系统,实际传输试验中使用操作系统,实际传输试验中使用UDP协议加上层自协议加上层自定义的简单协议,只能达到定义的简单协议,只能达到8Mbit/s的有效速率,实际网络资源使用不的有效速率,实际网络资源使用不到到10%。如果用普通单片机实现。如果用普通单片机实现UDP传输实际速率更低。所以在设计具传输实际速率更低。所以在设计具有网络通讯功能的小系统时网络速度不是主要限制条件。有网络通讯功能的小系统时网络速度不是主要限制条件。Southeast University2004.07 Southeast University2004.074.5 典型硬件典型硬件4.5.1 RTL8019AS RTL8019AS RTL8019AS 是一种高度集成的以太网芯片,能简单的实现是一种高度集成的以太网芯片,能简单的实现Plug and PlayPlug and Play,并兼容并兼容NE2000NE2000,掉电等特性。由于它拥有三种等级的掉电模式,所以它是作掉电等特性。由于它拥有三种等级的掉电模式,所以它是作为绿色电脑的网络设备的理想选择。在全双工模式下,如果是连接到一个同样为绿色电脑的网络设备的理想选择。在全双工模式下,如果是连接到一个同样是全双工的交换机或集线器,就可实现同时接收和发送。这个特性虽然不能把是全双工的交换机或集线器,就可实现同时接收和发送。这个特性虽然不能把传输速率从传输速率从10Mbps10Mbps提高到提高到20Mbps20Mbps,但是在执行以太网,但是在执行以太网CSMA/CDCSMA/CD协议时可以避免协议时可以避免更多的冲突的发生。而更多的冲突的发生。而MicrosoftsPlugMicrosoftsPlug and Play and Play功能就可以为用户减轻对资功能就可以为用户减轻对资源配置的烦恼源配置的烦恼(如如IRQ I/O MenoryIRQ I/O Menory address address 等等)。又或者是在一些特殊的场合,。又或者是在一些特殊的场合,为了对一些不支持为了对一些不支持Microsofts Plug and Play Microsofts Plug and Play 的器件的兼容,的器件的兼容,RTL8091AS RTL8091AS 还还可以选择跳线模式或非跳线模式。可以选择跳线模式或非跳线模式。为了完整的支持为了完整的支持PnP PnP,RTL8019ASRTL8019AS提供了自动检测提供了自动检测10BaseT 10BaseT 集成收发器集成收发器(RJ45)(RJ45)还是还是AUI BNC AUI 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 10Base5IEEE802.3 10Base5,10Base210Base2,10BaseT10BaseTn n软件兼容软件兼容8 8 位或位或16 16 位的位的NE2000 NE2000 模式模式n n支持跳线和非跳线模式支持跳线和非跳线模式n n支持在非跳线模式下的支持在非跳线模式下的Microsofts Plug and Play Microsofts 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 University2004.074.5.2RTL8201RTL8201是是10M/100M以太网以太网PHY Southeast University2004.07 Southeast University2004.07 Southeast University2004.074.5.3隔离变压器隔离变压器 8052单片机控制单片机控制RTL8019网卡的电路图网卡的电路图 4.6参考资料参考资料 TCP/IPTCP/IP详解,卷详解,卷1 1:协议:协议 电子工业出版社电子工业出版社 实战实战Linux SocketLinux Socket编程编程 西安电子科技大学出版社西安电子科技大学出版社 Visual CVisual C网络通讯协议分析与应用实现网络通讯协议分析与应用实现人民邮电出版社人民邮电出版社 RTL8019 DatasheetRTL8019 Datasheet www.realtek Southeast University2004.07总线与系统通讯讲义总线与系统通讯讲义 第五节第五节 IIC总线总线 Southeast University2004.07 Philips公司开发了一个简单的双向两线总线。实现公司开发了一个简单的双向两线总线。实现IC之间之间的有效控制。这个总线就称为的有效控制。这个总线就称为Inter IC 或或I2C 总线。所有符合总线。所有符合I2C总线的器件都包含了一个片上接口,使器件之间直接通过总线的器件都包含了一个片上接口,使器件之间直接通过I2C 总总线通讯。线通讯。I2C 总线的一些特征:总线的一些特征:只要求两条总线线路,一条串行数据线只要求两条总线线路,一条串行数据线SDA,一条串行时一条串行时钟线钟线SCL。每个连接到总线的器件都可以通过唯一的地址和一直存在每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机的简单的主机/从机关系软件设定地址;主机可以作为主机从机关系软件设定地址;主机可以作为主机发送器或主机接收器。发送器或主机接收器。它是一个真正的多主机总线。如果两个或更多主机同时初它是一个真正的多主机总线。如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。始化数据传输可以通过冲突检测和仲裁防止数据被破坏。v5.1 简介简介总线与系统通讯讲义总线与系统通讯讲义 Southeast University2004.07 SDA 和和SCL 都是双向线路,都通过一个电流源或上拉电阻都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压。当总线空闲时这两条线路都是高电平。连连接到正的电源电压。当总线空闲时这两条线路都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。与的功能。5.2 总体特征总体特征 SDA线上的数据必须在时钟的高电平周期保持稳定。数线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在据线的高或低电平状态只有在SCL线的时钟信号是低电平时线的时钟信号是低电平时才能改变。见下图:才能改变。见下图:v在在SCL 线是高电平时线是高电平时SDA 线从高电平向低电平切换这个情况表示起始线从高电平向低电平切换这个情况表示起始条件条件v当当SCL 是高电平时是高电平时SDA 线由低电平向高电平切换表示停止条件线由低电平向高电平切换表示停止条件v起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后总线被认为再次处于空闲状态。起始状态态,在停止条件的某段时间后总线被认为再次处于空闲状态。起始状态和终止状态如下图所示:和终止状态如下图所示:Southeast University2004.071。开始总线周期。开始总线周期。2。写入设备控制字,时钟上升沿锁存至设备。写入设备控制字,时钟上升沿锁存至设备。3。ACK:应答,主机写入控制字后,数据线:应答,主机写入控制字后,数据线SDA为高,此时主机读取总线状态,若为高,此时主机读取总线状态,若设备正确受到数据则将总线拉低,否则数据线将保持为高。主机读取到应答状态正确,设备正确受到数据则将总线拉低,否则数据线将保持为高。主机读取到应答状态正确,则可以继续写入数据。则可以继续写入数据。4。写入地址,时钟上升沿锁存至设备。写入地址,时钟上升沿锁存至设备。5。ACK。6。写入读控制字。写入读控制字7。ACK。8。读取数据,在时钟下降设备将数据输出至总线,此时主机即可读取。读取数据,在时钟下降设备将数据输出至总线,此时主机即可读取。9。结束总线周期。结束总线周期。5.3 典型时序典型时序5.3.1 读时序读时序 Southeast University2004.071。开始总线周期。开始总线周期。2。写入地址控制字,时钟上升沿锁存至设备。写入地址控制字,时钟上升沿锁存至设备。3。ACK:应答,主机写入控制字后,数据线:应答,主机写入控制字后,数据线SDA为高,此时主机读取总线状态,若为高,此时主机读取总线状态,若设备正确受到数据则将总线拉低,否则数据线将保持为高。主机读取到应答状态正确,设备正确受到数据则将总线拉低,否则数据线将保持为高。主机读取到应答状态正确,则可以继续写入数据。则可以继续写入数据。4。写入地址,时钟上升沿锁存至设备。写入地址,时钟上升沿锁存至设备。5。ACK。6。写入数据,时钟下降沿锁存至设备。写入数据,时钟下降沿锁存至设备。7。ACK。8。结束总线周期。结束总线周期。5.3.1 写时序写时序总线与系统通讯讲义总线与系统通讯讲义 第五节第五节 IIC总线总线 Southeast University2004.07在使用在使用IIC接口器件时,注意在时钟和数据线上加上拉电阻。接口器件时,注意在时钟和数据线上加上拉电阻。有些有些MCU具有具有IIC接口模块,其已经将设备控制字和数据映接口模块,其已经将设备控制字和数据映射到对应的特殊功能寄存器。只要读写这些寄存器就可以访射到对应的特殊功能寄存器。只要读写这些寄存器就可以访问外部问外部IIC器件了,这样的器件接口程序编写较为方便。器件了,这样的器件接口程序编写较为方便。如果如果MCU没有没有IIC接口模块,此时需要编写程序利用接口模块,此时需要编写程序利用MCU的的GPIO来模拟来模拟IIC接口时序。此时编程较为复杂。网络上有许接口时序。此时编程较为复杂。网络上有许多资
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!