940 likes | 1.05k Views
4.6 常用的嵌入式系统网络接口. 许多不同的网络多年来在分布式嵌入式系统中被广泛应用。一些系统总线可向它原来应用在多计算机系统中一样被应用在嵌入式网络系统中。现在介绍几种常用的嵌入式网络接口,包括 I 2 C 总线、 CAN 总线、用在局域网中的以太网和因特网方面相关的知识。. 4.6.1 I 2 C 总线接口设计.
E N D
4.6 常用的嵌入式系统网络接口 许多不同的网络多年来在分布式嵌入式系统中被广泛应用。一些系统总线可向它原来应用在多计算机系统中一样被应用在嵌入式网络系统中。现在介绍几种常用的嵌入式网络接口,包括I2C总线、CAN总线、用在局域网中的以太网和因特网方面相关的知识。
4.6.1 I2C总线接口设计 I2C总线(内部集成电路总线)是飞利浦公司开发的一种常用于将微处理器连接到系统的一种双向二进制同步串行总线。I2C总线多应用消费电子、通信和工控领域,是一个串行的8位双向数据传送总线。常将其用于连接串行存储器和LCD控制器,也可以作为MPEG-2视频片的命令接口。 使用I2C总线接口有4种操作模式: 主传送模式、主接收模式、从传送模式、从接收模式。 I2C总线的2.1版本使用的电源电压是2V,传输速率是0-3.4Mb/s。它只使用3条线,其中串行数据线(SDL)用于数据传送;串行时钟线(SCL)用于指示什么时候数据线上是有效数据;还有一条公共地线。
I2C总线接口设计 工作于全双工通信形式。I2C规范并未限制总线导线的长度,只要总线的总电容保持在400Pf以下即可。 每个I2C接口的设备都有一个唯一的7位地址(扩展方式为10位),便于主控器寻访。正常情况下,I2C总线上的所有从执行设备被设置为高阻状态,而主执行设备保持高,表示空闲状态。网络中的各设备都可以作为发送器和接收器。 网络中的每一个I2C接口设备都使用开放集电极/开放漏极电路,并被连接到串行时钟信号SCL和串行数据SDA这两个专用线上。其工作原理如下:
状态寄存器 比 较 器 地址寄存器 SCL Pclk SDA IIC控制逻辑 移位寄存器 分 频 器 控制寄存器 数据收发寄存器 片内数据总线 1、S3C2410的IIC结构 S3C2410的IIC主要有5部分构成:数据收发寄存器、数据移位寄存器、地址寄存器、时钟发生器、控制逻辑等部分。如下图所示。
+Vcc 上拉电阻 SCL SDA …… IIC 1 IIC 2 IIC n 主IIC 2、 IIC总线系统组成 IIC总线是多主系统:系统可以有多个IIC节点设备组成,并且可以是多主系统,任何一个设备都可以为主IIC;但是任一时刻只能有一个主IIC设备,IIC具有总线仲裁功能,保证系统正确运行。 主IIC设备发出时钟信号、地址信号和控制信号,选择通信的从IIC设备和控制收发。 系统要求:(1)各个节点设备必须具有IIC接口功能;(2)各个节点设备必须共地;(3)两个信号线必须接上拉电阻。如下图所示。
数据位 数据位信号 SDA SCL 起始信号 结束信号 3、IIC总线的工作原理 (1)IIC总线对数据线上信号的定义: 1)总线空闲状态:时钟信号线和数据信号线均为高电平。 2)起始信号:即启动一次传输,时钟信号线是高电平时,数据信号线由高变低。 3)停止信号:即结束一次传输,时钟信号线是高电平时,数据信号线由低变高。
数据位 数据位信号 SDA SCL 起始信号 结束信号 4)数据位信号:时钟信号线是低电平时,可以改变数据信号线电位;时钟信号线是高电平时,应保持数据信号线上电位不变,即时钟是高电平时数据有效。 5)应答信号:占1位,数据接收者接收1字节数据后,应向数据发出者发送一应答信号。低电平为应答,继续发送;高电平为非应答,结束发送。 6)控制位信号:占1位,主IIC设备发出的读写控制信号,高为读、低为写(对主IIC设备而言)。控制位在寻址字节中。
7)地址信号:为从机地址,占7位,如下表所示,称之为“寻址字节”,各字段含义如下:7)地址信号:为从机地址,占7位,如下表所示,称之为“寻址字节”,各字段含义如下: 器件地址(DA3---DA0):是IIC总线接口器件固有的地址编码,由器件生产厂家给定。如IIC总线EEPROM AT24C××的器件地址为1010等。 引脚地址(A2、A1、A0):由IIC总线接口器件的地址引脚A2、A1、A0的高低来确定,接电源者为1,接地者为0。 读写控制位(R/ W):1表示主设备读,0表示主设备写。 7位地址和读写控制位组成1个字节。
S 从IIC地址(7位) R/W A 传输数据 …… A P S 从IIC地址 W A 数据1 A 数据2 A …… 数据n A/A P S 从IIC地址 R A 数据1 A 数据2 A …… 数据n AP (2)IIC总线数据传输格式 1)一般格式: 2)主控制器写操作格式: 红色起始信号S、地址信号、控制信号W、各个数据、结束信号P,均为主IIC设备发送、从IIC设备接收;黑色的应答信号A/A为从IIC设备发送、主IIC设备接收。 3)主控制器读操作格式: 红色的信号均为主IIC设备发送、从IIC设备接收;黑色的信号均为从IIC设备发送、主IIC设备接收。
数据1 A 数据2 A 数据3 A …… 数据m A/A P 4)主控制器读/写操作格式: 由于在一次传输过程中要改变数据的传输方向,因此起始信号和寻址字节都要重复一次,而中间可以不要结束信号。 在一次传输中,可以有多次启动信号。 S 从IIC地址 R A 数据1 A 数据2 A … ArS从地址 W A
(3)读写操作 在发送器模式下,数据被发送之后,IIC 总线接口会等待直到 IICDS(IIC 数据移位寄存 器)被程序写入新的数据。在新的数据被写入之前,SCL 线都被拉低。新的数据写入之后, SCL 线被释放。 S3C2410X 可以利用中断来判断当前数据字节是否已经完全送出。在 CPU 接收到中断请求后,在中断处理中再次将下一个新的数据写入 IICDS,如此循环。 在接收模式下,数据被接收到后,IIC 总线接口将等待直到 IICDS 寄存器被程序读出。 在数据被读出之前,SCL 线保持低电平。新的数据从读出之后,SCL 线才释放。 S3C2410X 也利用中断来判别是否接收到了新的数据。CPU 收到中断请求之后,处理程序将从 IICDS 读取数据。
4、IIC专用寄存器 S3C2410有4个专用寄存器
说明: (1)应答使能问题:一般情况下为使能;在对EEPROM读最后1个数据前可以禁止应答,便于产生结束信号。 (2)中断事件:1)完成收发;2)地址匹配;3)总线仲裁失败。 (3)中断控制位问题:设为0时,中断标志位不能正确操作,故总设为1。 (4)时钟预分频问题:当分频位选择为0时,预分频值必须大于1。 1)IIC控制寄存器(续)
2)IIC控制状态寄存器(续) IICSTAT控制字: 启动主设备发送:0xF0;结束主设备发送:0xD0 启动主设备接收:0xB0;结束主设备接收:0x90
3、IIC地址寄存器(IICADD) 说明: (1)对从设备,该地址有意义,对主设备其值无意义。 (2)只有在不发送数据时(数据传输控制位IICSTAT[4] =0)才能对其写;任何时间都可以读。
4、IIC数据发送/接收寄存器(IICDS) 说明:(1)在本设备接收时,对其作读操作得到对方发来的数据。任何时间都可以读。 (2)在本设备发送时,对其写操作,将数据发向对方。 (3)欲发送数据,必须使数据传输控制位IICSTAT[4] =1才能对其写。
开 始 写SART 启动传输 设置IICCON 从地址写入IICDS 写STOP 结束传输 写0xF0到IICSTAT 主机发送数据 写0xD0到IICSTAT ACK、产生中断 Y 清除中断标志 要停止? N 等待停止位起作用 发送数据写入IICDS 清除中断标志 结 束 1) 主 模 式 发 送 流 程 5、IIC操作方法
开 始 设置IICCON 写SART 启动传输 从地址写入IICDS 写0xB0到IICSTAT 写STOP 结束传输 主机发送寻址字节 ACK、产生中断 Y 写0x90到IICSTAT 要停止? N 清除中断标志 从IICDS中读数据 等待停止位起作用 清除中断标志 结 束 主机发送数据 2) 主 模 式 接 收 流 程
4.6.2 CAN总线接口设计 CAN(Controller Area Network)控制器局域网总线是一种用于实时应用的串行通信协议,可以使用双绞线、同轴电缆或光纤来传输信号。最早由德国的Robert Bosch公司开发,用于汽车中各种不同电子元件之间的通信,以此取代配电线束。比如发动机管理系统、变速箱控制器、仪表装置和电子主干系统中均嵌入CAN控制装置。CAN协议的特性包括高完整性的串行数据通信、提供实时支持、传输速率高达1Mbps、11位寻址以及检错能力。它是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。还有低成本和远距离传输(长达10Km)的特点。
1)CAN总线工作原理 • 主要应用于汽车电控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面。 • CAN总线使用位串行数据传输,CAN可以1Mb/s的速率在40米双绞线上运行,也可以使用光缆链接,而且在这种总线上总线协议支持多主控器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。 • CAN总线每一个节点有它自己的以AND方式连接到总线的驱动器和接收器。CAN总线的信号使用差分电压传颂,两条信号线被称为CAN-H和CAN-L,静态时均是2.5V,此时状态被称为逻辑1,也被称作“隐性”,用CAN_H比CAN_L高表示逻辑0,称为“显性”,此时的电压值
CAN_H=3.5V和CAN_L=1.5V。总线上的驱动电路当总线上任何节点拉低总线电位时会引起总线被拉到0。当所有节点都传送1时,总线被称作隐性状态,当一个节点传送0时,总线处于显性状态。数据以数据帧的形式在网络上传送。CAN_H=3.5V和CAN_L=1.5V。总线上的驱动电路当总线上任何节点拉低总线电位时会引起总线被拉到0。当所有节点都传送1时,总线被称作隐性状态,当一个节点传送0时,总线处于显性状态。数据以数据帧的形式在网络上传送。 CAN是一种同步总线。为了总线仲裁能够工作,所有的发送器必须同时发送。节点通过监听总线上位传输的方式使自己与总线保持同步。在总线上发送4类信息帧:数据帧、远程帧、错误指示帧和超载帧。 其中远程帧用于请求数据,数据帧用于发送数据。数据帧的第一位提供了帧中的第一个同步机会。数据帧以一个1开始,以七个0结束。分组中的第一个域包含目标地址,该域被称为仲裁域。
1)CAN总线工作原理 目标标识符长度是11位。如果数据帧被用来从标识符指定的设备请求数据时,后面的远程传输请求(RTR)位被设置为0。 当RTR=1时,分组被用来向目标标识符写入数据。控制域提供一个标识符扩展和4位的数据域长度1。数据域的范围是从0到64字节,这取决于控制域中给定的值。数据域后发送一个循环冗余校验(CRC)用于错误检测。确认域被用于发出一个是否帧被正确接收的标识信号:发送端把一个隐性位(1)放到确认域的ACK 插槽中;如果接收端检测到了错误,它强制该位变为显性的0值。如果发送端在ACK插槽中发现了一个0在总线上,它就知道必须重发。ACK插槽后面跟着帧结束符,两者由单位分隔符隔开。
一种CAN总线的物理电器组织结构图 I=隐性的 0=显性的 节点 节点
1 12 6 0~ 64 16 2 7 开始 仲裁域 控制域 数据域 CRC域 应答域 帧结束 值=0 远程传输请求位 表示符扩展 值=1 ACK插糟 ACK 分隔符 数据程度 标识符 11 1 1 1 4 1 1 CAN数据贞格式图
2)CAN总线控制器体系结构 • 在MPU与CAN总线之间需要CAN控制器、光电耦合器和CAN驱动器充当信号接口器件。其中,CAN控制器可以内嵌在MPU内部(如LPC2294),也可以单独形式出现(SJA1000是PCA82C200的替代品或者MPC2510)。光电耦合器采用6N317,CAN总线收发器(也称驱动器,PCA82C250)是直接连接到CAN物理总线。其作用是增加通信距离,提高系统的瞬间抗干扰能力。 • 例如S3C2410,S3C44B0等均需外扩CAN控制器(如MPC2510)。
总线接口 协议控制器 状态/控制 寄存器 宿主机 接口 CAN总线 消息对象 接收缓冲区 2)CAN总线控制器体系结构
3)CAN总线接口的设计 • 独立CAN控制器如SJA1000或者82C200,支持CAN2.0A/B,同时支持11位和29位ID,位速率可达1M,具有总线仲裁功能,扩展的接收缓冲器(64字节FIFO),增强的环境温度范围(-40-+125℃)。采用并行总线接口。 MCP2510——MicroChip,支持CAN2.0A/B,同时支持11位和29位ID,位速率可达1M,具有总线仲裁功能。2个接收缓冲区,3个发送缓冲区。采用高速SPI接口。 • CAN总线收发器82C250,是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动额接收能力,有很强的抗电磁干扰(EMI)的能力 ,至少可挂110个节点。
说明 MPU和SJA1000以总线方式连接,SJA1000的复用总线和ARM的数据总线连接。SJA1000的片选、读写信号均采用ARM总线信号,ALE信号由读写信号和地址信号通过GAL产生。在写SJA1000寄存器时,首先往总线的一个地址写数据,作为地址,读写信号无效,ALE变化产生锁存信号;然后写另外一个地址,读写信号有效,作为数据。上述逻辑完全通过可编程器件来产生。 控制CAN总线时首先初始化各寄存器。发送数据时首先置位命令寄存器,然后写发送缓冲区,最后置位请求发送。接收通过查询状态寄存器,读取接收缓冲区获得信息。
3)CAN高层协议 CAN总线每次可以发送十个字节的信息(CAN2.0A)。发送的第一字节和第二字节的前3位为ID号,第四位为远程帧标记,后四位为有效字节长度,软件设置时可以根据ID号选择是否屏蔽上述信息。也可以通过设置硬件产生自动验收滤波器。 八个有效字节内部代表何种参数,可以自行定义内部标准,也可以参照DeviceNet等应用层协议。
4.6.3 嵌入式以太网设计 以太网是广泛用于通用计算的局域网。因为它以其高度灵活,组网相对简单,易于实现和以太网接口,低价格等特点,它已经成为当今最重要的一种局域网建网技术,并被应用于嵌入式技术当中。尤其是在网络不需要满足严格的实时需求时,以太网特别有用。 以太网的物理组成非常简单。该网络是一条具有单信号路径的总线,以太网连接载体标准可以由几种不同的实现方法,比如采用双绞线、同轴电缆或光缆来实现。
1) 嵌入式以太网概述 以太网通常使用专门的网络接口卡或通过系统板上的电路实现,使用收发器与网络媒体进行连接。收发器可以完成多种物理层功能,其中包括对网络碰撞进行检测。收发器可以作为独立的设备通过电缆与终端连接,也可以直接被集成到终端站的网卡当中。 以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传输的数据。通过查看包含帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。
嵌入式以太网概述 与I2C和CAN总线不同,以太网上的节点不是同步的,它可以在任何时间发送数据。I2C和CAN依靠同步机制在一个位的发送时间内实现冲突的检测和取消;但是因为以太网的节点不是同步的,所以如果两个节点同时发送数据,那么报文将会被破坏。 以太网的仲裁机制被称作为带冲突检测的载波监听多路存取,即CSMA/CD。以太网上的任何工作站在发送数据之前,工作站首先需要侦听网络是否空闲,如果网络上没有任何数据传送,就会把要发的信息投放到网络当中。否则,工作站只能等待下一次出现空闲的时候在进行数据的发送。
2)嵌入式以太网建网技术 以太网以其高度灵活、相对简单、易于实现的特点,成为当今最重要的一种局域网建网技术。以太网主要有以下四种的局域网技术: • 10Mbps以太网,采用同轴电缆、双绞线作为网络介质,传输速率达到10Mbps。 • 100Mbps以太网又称为快速以太网,采用同轴电缆、双绞线作为网络介质,传输速率达到100Mbps。 • 1000Mbps以太网又称为千兆以太网,采用光缆等作为网络介质,传输速率达到1000Mbps(1Gbps)。 • 10GMbps以太网又称为10G以太网,采用光缆等作为网络介质,传输速率达到10Gbps。以太网协议一般采用IEEE802.3标准。现代的操作系统均能同时支持这种类型的协议格式。
3)以太网工作原理 • 以太网最早是由Xeros公司开发的一种基带局域网技术; • 使用双绞线、同轴电缆、光纤作为网络介质; • 以太网采用广播机制; • 采用载波多路访问和碰撞检测(CSMA/CD)机制; • 数据传输速率达到10Mbps-10Gbps; • 以太网/IEEE 802.3通常使用专门的网络接口卡或通过系统主电路板上的电路实现。
以太网工作原理 (1)传输编码 • 曼彻斯特编码 • 差分曼彻斯特编码
以太网工作原理 曼彻斯特编码的特点是:对应每一数据位的中间位置都有一个跳变,用跳变的相位表示数字,正跳变表示“0”,负跳变表示“1”,也被称为相位跳变。 差分曼彻斯特编码的特点是:在每一位数据位的中间都有一个跳变,但它只用来生成同步时钟信号。这种编码法是用每位开始有无跳变来表示数字,若每位开始有跳变表示数字“0”,若每位开始无跳变表示数字“1”。
(2)以太网协议 • 以太网MAC层物理传输帧 (IEEE802.3 ) PR:同步位,收发双方的时钟同步,也指明传输的速率(10M、100M)。 SD:分隔位,表示下面跟着的是真正的数据,而不是同步时钟 DA:目的地址,以太网的地址为48位地址。如果为都为F,则是广播地址。
(2)以太网协议 SA:源地址,48位,表明该帧的数据是哪个网卡发的,发送端卡地址。 TYPE:类型字段,表明该帧的数据是什么类型的数据。如:0800H 表示数据为IP包,0806H表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包 。 DATA:数据段,该段数据不能超过1500字节。 PAD:填充位。以太网帧传输的数据包最小不能小于60字节, 当数据段不足46字节时,后面补000000...(当然也可以补其它值)。 FCS: 32位CRC数据校验位。该校验由网卡自动完成。
(3)以太网的数据传输特点 • PR,SD,PAD,FCS这几个数据段是由网卡自动产生的;只需要理解DA、SA、TYPE、DATA四个段的内容 • 所有数据位的传输由低位开始(传输的位流使用曼彻斯特编码) 。 • 以太网的冲突退避算法是由硬件自动执行的。 • DA+SA+TYPE+DATA+PAD最小为60字节,最大1514字节 • 以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(在嵌入式的环境中一般不用),一个是它自已的地址。 • 任何两个网卡的物理地址都是不一样的,是世界上唯一的,网卡地址由专门机构分配。
4)嵌入式的以太网设计方案 • 嵌入式处理器+网卡芯片(RTL8019) • 对嵌入式处理器没有特殊要求,通用性强 • 处理器和网络数据交换通过外部总线,速度慢,不适合于100M网络 • 带有以太网络控制器接口的嵌入式处理器S3C4510 • 处理器面向网络应用 • 处理器和网络数据交换通过内部总线,速度快。 RTL8019AS作为网卡时需要一片EEPROM作为配置存储器,用来确定通讯的端口地址,中断地址,网卡的物理地址,工作模式,制造厂商等信息。