ch9 网络接口_第1页
ch9 网络接口_第2页
ch9 网络接口_第3页
ch9 网络接口_第4页
ch9 网络接口_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统原理与应用技术嵌入式系统原理与应用技术 袁志勇袁志勇 王景存王景存章登义章登义 刘树波刘树波 北京北京: 北京航空航天大学出版社北京航空航天大学出版社, 2009.11PPT教学课件教学课件2022-3-162第十章第十章 嵌入式网络接口技术嵌入式网络接口技术9.1 网络接口技术概述网络接口技术概述9.2 IIC接口接口9.3 CAN总线接口技术总线接口技术9.4 以太网接口技术以太网接口技术2022-3-1639.1 网络接口技术概述网络接口技术概述n基于网络的分布式嵌入式系统应用基于网络的分布式嵌入式系统应用q处理的任务是分布式的,需要把计算源置于靠近事处理的任务是分布式的,需要

2、把计算源置于靠近事件的发生地,并通过网络进行协调工作件的发生地,并通过网络进行协调工作q网络环境下信息共享程度的提高网络环境下信息共享程度的提高q实际应用中,根据需要选取所需的协议来构造嵌入实际应用中,根据需要选取所需的协议来构造嵌入式系统的网络式系统的网络q可用于构造嵌入式网络的协议可用于构造嵌入式网络的协议有多种,常见的有:有多种,常见的有:RS-485,I2C总线,总线,CAN总线,总线,以太网以太网协议等协议等2022-3-1649.1.1 分布嵌入式系统结构分布嵌入式系统结构 构造基于网络的分布嵌入式系统应用主要基于如下几点考虑: 所处理的任务是分布式的,因此需要将嵌入式装置或计算源

3、置于靠近事件的发生地,并通过网络进行协调工作; 提高网络环境下的信息共享程度; 嵌入式系统需要较高的容错性能,采用分布嵌入式结构可以提高系统的容错性。2022-3-165n分布式嵌入式系统结构分布式嵌入式系统结构q基本组成要素:基本组成要素:处理处理单元单元(元素元素: PE)和和通信网络通信网络q处理单元可以是一个完整的控制器处理单元可以是一个完整的控制器(内部有内部有CPU、存储器及相关存储器及相关I/O等等),也可以是支持网络协议的不,也可以是支持网络协议的不可编程单元可编程单元(如具有网络接口的传感器和其他执行如具有网络接口的传感器和其他执行机构等机构等)控制器控制器1控制器控制器2传

4、感器传感器1执行机构执行机构其他其他I/O设备设备网络网络图9.1 分布嵌入式系统基本结构 2022-3-166n说明:说明:n分布式嵌入式系统中的网络链路有时也被称为分布式嵌入式系统中的网络链路有时也被称为“总总线线”,但这里的,但这里的“总线总线”与微处理器总线与微处理器总线是是不同不同的的( (无存储系统,不支持网络总线上的取指操作无存储系统,不支持网络总线上的取指操作) )n分布式嵌入式系统中网络链路通常采用分布式嵌入式系统中网络链路通常采用“分层分层”的体的体系结构模型来实现各部件之间的通信系结构模型来实现各部件之间的通信( (对分布式嵌入对分布式嵌入式系统中的网络而言,一般只实现式

5、系统中的网络而言,一般只实现OSIOSI七层协议中的七层协议中的几层几层) )2022-3-1679.1.2 分布嵌入式网络通信方式分布嵌入式网络通信方式 在分布嵌入式系统应用领域,通常是按成本预算和实际需求来构造不同方式的分布嵌入式网络。可用于分布嵌入式系统的网络有许多,分布嵌入式网络通信方式主要有点对点通信方式和总线通信方式。 所谓点对点通信方式是指两台或两台以上嵌入式系统之间相互交换信息的方式,它具有安全、快捷、直观、同步和经济等优点。如两台嵌入式系统采用RS-232通信即是一种典型的点对点通信方式。2022-3-168 在分布式嵌入式系统网络应用中,通常是多个设备相互连接,这时,需要采

6、用总线通信方式。在总线通信方式中,连接到总线上的所有处理单元都必须有自己的唯一地址或标识;总线上的通信一般是以报文组的形式进行的,一个分组报文中包含一个目的地址和欲被传送的数据以及检错纠错信息,见图9.2所示。图9.2 分组报文格式 2022-3-169 分布嵌入式网络中的总线必须要满足仲裁机制,即网络总线上同时出现传送操作时需要进行必要的选择。 仲裁机制主要有两种类型:(1)固定优先级仲裁机制,即嵌入式网络中采用固定优先级方式给予竞争系统优先级。当嵌入式网络中高优先级和低优先级的嵌入式系统都要同时进行大量的数据传送时,往往是高优先级系统先传送数据包,然后低优先级系统再传送数据包;(2)公平仲

7、裁机制,即嵌入式网络中各系统具有相同的待遇,循环仲裁是一种常见的公平仲裁机制。2022-3-161010.2 I2C10.2 I2C接口接口nI2C/IICI2C/IIC(I InternterI Integrated ntegrated C Circuitircuit)总线是一种由)总线是一种由PHILIPSPHILIPS公司公司针对针对MCUMCU需要而研制的两线式串行总线,用于连接需要而研制的两线式串行总线,用于连接MCUMCU及其外围设及其外围设备。备。nI2CI2C总线最主要的优点是其简单性和有效性。总线最主要的优点是其简单性和有效性。n由于接口直接在组件之上,因此由于接口直接在组件

8、之上,因此I2CI2C总线占用的空间非常小,减少了总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。电路板的空间和芯片管脚的数量,降低了互联成本。n总线的长度可高达总线的长度可高达2525英尺英尺( (约约7.6m)7.6m),并且能够以,并且能够以100Kbps100Kbps的的最大传最大传输速率支持输速率支持4040个组件个组件。n另一个优点是,它支持另一个优点是,它支持多主控多主控(multi-mastering)(multi-mastering), 其中任何能够进其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号传输行发送和接收的设备都可以成

9、为主总线。一个主控能够控制信号传输和时钟频率。当然,在任何时间点上只能有一个主控。和时钟频率。当然,在任何时间点上只能有一个主控。 2022-3-1611uI2CI2C总线工作原理总线工作原理 nI2CI2C总线系统组成总线系统组成 qI2CI2C总线是由总线是由数据线数据线SDASDA ( (S Serial erial DADAta line)ta line)和和时时钟钟SCLSCL ( (S Serial erial C Clock lock L Line)ine)构成的串行总线,可发构成的串行总线,可发送和接收数据送和接收数据 q在在CPUCPU与被控与被控ICIC之间、之间、ICIC

10、与与ICIC之间进行双向传送,之间进行双向传送,最高传送速率最高传送速率100kbps 100kbps q各种从设备均并联在这条总线上,但就像电话机一各种从设备均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,因此每个设备都样只有拨通各自的号码才能工作,因此每个设备都有唯一的地址有唯一的地址 q在信息的传输过程中,在信息的传输过程中,I2CI2C总线上并接的每一设备总线上并接的每一设备既是主设备既是主设备( (或从设备或从设备) )又是发送器又是发送器( (或接收器或接收器) ),这取,这取决于它所要完成的功能决于它所要完成的功能 2022-3-1612 I2C总线是多主系统:系

11、统可以有多个总线是多主系统:系统可以有多个I2C节点设备组成,节点设备组成,并且可以是多主系统,任何一个设备都可以为主并且可以是多主系统,任何一个设备都可以为主I2C;但是;但是任一时刻只能有一个主任一时刻只能有一个主I2C设备,设备,I2C具有总线仲裁功能,保具有总线仲裁功能,保证系统正确运行。证系统正确运行。 主主I2C设备发出时钟信号、地址信号和控制信号,选择通设备发出时钟信号、地址信号和控制信号,选择通信的从信的从IIC设备并控制收发。设备并控制收发。 系统要求:系统要求:1. 各个节点设备必须具有各个节点设备必须具有IIC接口功能;接口功能;2. 各各个节点设备必须共地;个节点设备必

12、须共地;3. 两根信号线必须接上拉电阻两根信号线必须接上拉电阻。如下。如下图所示。图所示。图9.3 多IIC设备接口示意图 2022-3-1613nI2CI2C总线的状态和信号总线的状态和信号 q1. 1. 空闲状态空闲状态 SCLSCL和和SDASDA均处于高电平状态,即为总线空闲状态均处于高电平状态,即为总线空闲状态( (空闲状态为何是高电平的道理很简单,因为它们都接上空闲状态为何是高电平的道理很简单,因为它们都接上拉电阻拉电阻) )。q2. 2. 占有总线和释放总线占有总线和释放总线 器件若想使用总线应当先占有它,器件若想使用总线应当先占有它,占有总线的主控器占有总线的主控器向向SCLS

13、CL线发出时钟信号线发出时钟信号。数据传送完成后应当及时释放总。数据传送完成后应当及时释放总线,即解除对总线的控制线,即解除对总线的控制( (或占有或占有) ),使其恢复成空闲状态。,使其恢复成空闲状态。q3. 3. 开始开始/ /启动信号启动信号(S)(S) 启动信号由主控器产生;启动信号由主控器产生;在在SCLSCL信号为高时,信号为高时,SDASDA产生一个由高变低的电平变化,产生产生一个由高变低的电平变化,产生启动信号启动信号。2022-3-1614q4. 4. 结束结束/ /停止信号停止信号(P)(P) 当当SCLSCL线高电平时,主控器在线高电平时,主控器在SDASDA线上产生一个

14、由低电平向高线上产生一个由低电平向高电平跳变,产生电平跳变,产生停止信号停止信号。启动信号和停止信号的产生见下图如所示。启动信号和停止信号的产生见下图如所示。q5. 5. 应答应答/ /响应信号响应信号(A(A/ /ACK)ACK) 应答信号是对字节数据传输的确认。应答信号是对字节数据传输的确认。占占1位,位,数据接收者接收数据接收者接收1字节数据后,应向数据发出者发送一个字节数据后,应向数据发出者发送一个应答信号应答信号。对应于对应于SCLSCL第第9 9个个应答时钟脉冲,若应答时钟脉冲,若SDASDA线仍保持高电平,则为线仍保持高电平,则为非应答信号非应答信号( (ACKACK/ /NAN

15、A) )。低电平为应答,继续发送;低电平为应答,继续发送;高电平为非应答,结束发送。高电平为非应答,结束发送。 q 6. 6. 控制位信号控制位信号 占占1位,位,I2C主机发出的读写控制信号,高为读、低为写(对主机发出的读写控制信号,高为读、低为写(对I2C主机而言)。主机而言)。控制位控制位(方向位方向位)在寻址字节中。在寻址字节中。 图图9.4 启动信号和停止信号的产生启动信号和停止信号的产生 2022-3-1615q7. 7. 地址信号地址信号 为为从机地址从机地址,占,占7 7位,如下表所示,称之为位,如下表所示,称之为“寻址字寻址字节节”,各字段含义如下:,各字段含义如下: 器件地

16、址器件地址(DA3-DA0DA3-DA0):是是I2CI2C总线接口器件固有的地址总线接口器件固有的地址编码,由器件生产厂家给定。如编码,由器件生产厂家给定。如I2CI2C总线总线EEPROM EEPROM AT24CAT24C器件器件的地址为的地址为10101010等。等。 引脚地址引脚地址(A2A2、A1A1、A0A0):由由I2CI2C总线接口器件的地址引脚总线接口器件的地址引脚A2A2、A1A1、A0A0的高低来确定,接电源者为的高低来确定,接电源者为1 1,接地者为,接地者为0 0。 读写读写控制位控制位/ /方向位方向位(R/ WR/ W):1 1表示主机读,表示主机读,0 0表示

17、主机写。表示主机写。7 7位地址和读写控制位组成位地址和读写控制位组成1 1个字节个字节( (寻址字节寻址字节) )。 D7D6D5D4D3D2D1D0DA3DA2DA1DA0A2A1A0R/ W2022-3-1616q 8. 8. 等待状态等待状态( (* *) ) 在在I2SI2S总线中,赋予接收数据的器件有使系统进行等待总线中,赋予接收数据的器件有使系统进行等待状态的权力,但等待状态只能在一个数据字节完整接收之后状态的权力,但等待状态只能在一个数据字节完整接收之后进行。进行。 例如,当进行主机发送从机接收的数据传送操作时,例如,当进行主机发送从机接收的数据传送操作时,若从机在接收到一个数

18、据字节后,由于中断处理等原因而不若从机在接收到一个数据字节后,由于中断处理等原因而不能按时接收下一个字节;从机可以通过把能按时接收下一个字节;从机可以通过把SCLSCL下拉为低电平,下拉为低电平,强行使主机进入等待状态。在等待状态下,主机不能发送数强行使主机进入等待状态。在等待状态下,主机不能发送数据,直到从机认为自己能继续接收数据时,再释放据,直到从机认为自己能继续接收数据时,再释放SCLSCL线,线,使系统退出等待状态,主机才可以继续进行后续的数据传送。使系统退出等待状态,主机才可以继续进行后续的数据传送。2022-3-1617IIC总线基本操作总线基本操作n串行数据串行数据SDASDA和

19、串行时钟和串行时钟SCLSCL线在连接到总线的器件间传线在连接到总线的器件间传递信息。递信息。n每个器件都有一个唯一的地址标识每个器件都有一个唯一的地址标识,无论是,无论是MCUMCU、LCDLCD驱动器、存储器或键盘接口。驱动器、存储器或键盘接口。n都可以作为一个都可以作为一个发送器发送器或或接收器接收器,由器件的功能决定。,由器件的功能决定。很很明显,明显,LCDLCD驱动器只是一个接收器,而存储器则既可以接驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。收又可以发送数据。n器件除了能看作发送器和接收器外,在执行数据传输时它器件除了能看作发送器和接收器外,在执行数据传输时它也可以

20、被看作是也可以被看作是主机主机或或从机从机。n主机是初始化总线的数据传输并产生允许传输时钟信号的主机是初始化总线的数据传输并产生允许传输时钟信号的器件,此时任何被寻址的器件都被认为是从机。器件,此时任何被寻址的器件都被认为是从机。2022-3-1618术术 语语描描 述述发送器发送器发送数据到总线的器件发送数据到总线的器件接收器接收器从总线接收数据的器件从总线接收数据的器件主机主机初始化发送产生时钟信号和终止发送的器件初始化发送产生时钟信号和终止发送的器件从机从机被主机寻址的器件被主机寻址的器件多主机多主机同时有多于一个主机尝试控制总线但不破坏报文同时有多于一个主机尝试控制总线但不破坏报文仲裁

21、仲裁是一个在有多个主机同时尝试控制总线但只允许其中是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程一个控制总线并使报文不被破坏的过程同步同步两个或多个器件同步时钟信号的过程两个或多个器件同步时钟信号的过程2022-3-1619启动和停止条件启动和停止条件n在SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示启动条件n当SCL是高电平时,SDA 线由低电平向高电平切换,表示停止条件n启动和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态,在停止条件的某段时间后,总线被认为再次处于空闲状态n如果产生如果产生重复启动条件重复启动条件SrSr而

22、不产生停止条件,而不产生停止条件,总线会一直处于忙状态总线会一直处于忙状态2022-3-1620I2CI2C总线数据传输格式总线数据传输格式S 从从I2C地址地址(7位位) R/W A 传输数据传输数据 A PS 从从I2C地址地址 W A 数据数据1 A 数据数据2 A 数据数据n A/A PS 从从I2C地址地址 R A 数据数据1 A 数据数据2 A 数据数据n A P(1) (1) 一般格式:一般格式:(2) (2) 主控制器写操作格式:主控制器写操作格式: 红色红色起始信号起始信号S、地址信号、控制信号、地址信号、控制信号W、各个数据、结束、各个数据、结束信号信号P,均为主均为主I2

23、C设备发送设备发送、从、从I2C设备接收;黑色的设备接收;黑色的应答信号应答信号A/A由从由从I2C设备发送、主设备发送、主I2C设备接收设备接收。(3) 主控制器读操作格式主控制器读操作格式: 红色的信号均为主红色的信号均为主I2CI2C设备发送设备发送、从、从I2CI2C设备接收;黑色的设备接收;黑色的信号均为从信号均为从I2CI2C设备发送、主设备发送、主I2CI2C设备接收。设备接收。2022-3-1621(4)主控制器读主控制器读/写操作格式写操作格式 : 由于在一次传输过程中要改变数据的传输方向,因此由于在一次传输过程中要改变数据的传输方向,因此起始信号和寻址字节都要重复一次起始信

24、号和寻址字节都要重复一次,而中间可以不要结束,而中间可以不要结束信号。信号。 在一次传输中,可以有多次启动信号。在一次传输中,可以有多次启动信号。S 从从IIC地址地址 R A 数据数据1 A 数据数据2 A A Sr 从地址从地址 W A 数据数据1 A 数据数据2 A 数据数据3 A 数据数据m A/A P2022-3-1622标准模式标准模式I2C I2C 总线规范的扩展总线规范的扩展n标准模式标准模式I2CI2C总线规范总线规范在在8080年代初期已经存在。它年代初期已经存在。它规规定数据传输速率可高达定数据传输速率可高达100kbit/s 100kbit/s ,而且,而且7 7 位寻

25、址位寻址。这个概念在普及中迅速成长。今天它已经作为一个标这个概念在普及中迅速成长。今天它已经作为一个标准被全世界接受,而且准被全世界接受,而且Philips SemiconductorsPhilips Semiconductors和其和其他供应商提供了几百种不同的兼容他供应商提供了几百种不同的兼容ICIC。n为了符合更高速度的要求以及制造更多可使用的从机为了符合更高速度的要求以及制造更多可使用的从机地址给数量不断增长的新器件,地址给数量不断增长的新器件,标准模式标准模式I2CI2C总线规总线规范范不断升级。到今天它提供了以下的不断升级。到今天它提供了以下的扩展扩展:q快速模式位速率高达快速模式

26、位速率高达400kbit/s400kbit/sq高速模式高速模式(Hs(Hs模式模式) )位速率高达位速率高达3.4Mbit/s3.4Mbit/sq1010位寻址允许使用高达位寻址允许使用高达10241024个额外的从机地址个额外的从机地址( (* *) )2022-3-16239.2.2 S3C2410 I2C9.2.2 S3C2410 I2C接口接口nS3C2410的的I2C主要有主要有5部分构成:部分构成:数据收发寄存器数据收发寄存器、数据数据移位寄存器移位寄存器、地址寄存器地址寄存器、时钟发生器时钟发生器、控制逻辑控制逻辑等部分。等部分。如下图所示。如下图所示。图图9.9 S3C241

27、0 IIC串行总线控制器框图串行总线控制器框图 2022-3-1624nS3C2410 I2C总线接口具有一个专门的串行数总线接口具有一个专门的串行数据线和串行时钟线。它有据线和串行时钟线。它有主机发送主机发送模式、模式、主机主机接收接收模式、模式、从机发送从机发送模式和模式和从机接收从机接收模式模式4种操种操作模式。作模式。n控制控制S3C2410 I2C总线操作,需要写数据到总线操作,需要写数据到IICCON (I2C总线控制寄存器总线控制寄存器)、IICSTAT (I2C总总线控制线控制/状态寄存器状态寄存器)、IICDS (I2C总线总线Tx/Rx数数据移位寄存器据移位寄存器)和和II

28、CADD (I2C总线地址寄存器总线地址寄存器)。2022-3-1625nS3C2410S3C2410芯片支持芯片支持I2CI2C总线序列接口,其端口总线序列接口,其端口E E的的GPE15GPE15用作数据线用作数据线 ( (SDASDA) ),GPE14GPE14用作连续时钟线用作连续时钟线 ( (SCLSCL) )。这。这2 2根信号线用于在根信号线用于在S3C2410S3C2410芯片内部的总线主芯片内部的总线主控器和连接到控器和连接到I2CI2C总线上的外围设备之间传输信息,此数总线上的外围设备之间传输信息,此数据线和连续时钟线均是双向的。据线和连续时钟线均是双向的。n当当I2CI2

29、C总线空闲时,总线空闲时,GPE15GPE15引脚(引脚(SDASDA信号线)和信号线)和GPE14GPE14引脚(引脚(SCLSCL信号线)都应设置成高电平。信号线)都应设置成高电平。GPE15GPE15引脚从高电平转换到低电平时,引脚从高电平转换到低电平时,启动启动一次传输。当一次传输。当GPE14GPE14保持在高电平时,保持在高电平时,GPE15GPE15引脚从低电平转换到高引脚从低电平转换到高电平则表示电平则表示传输结束传输结束。其传输协议遵循上节所介绍的。其传输协议遵循上节所介绍的I2CI2C总线协议。总线协议。 2022-3-1626 在发送器模式下在发送器模式下,数据被发送之后

30、,数据被发送之后,I2C 总线接口总线接口会等待直到会等待直到 IICDS(I2C 数据移位寄存数据移位寄存 器)被程序写入器)被程序写入新的数据。新的数据。在新的数据被写入之前,在新的数据被写入之前,SCL 线都被拉低线都被拉低。新的数据写入之后,新的数据写入之后, SCL 线被释放线被释放。S3C2410 可以利用中断来判断当前数据字节是否可以利用中断来判断当前数据字节是否已经完全送出。在已经完全送出。在 CPU 接收到中断请求后,在中断处接收到中断请求后,在中断处理中再次将下一个新的数据写入理中再次将下一个新的数据写入 IICDS,如此循环。,如此循环。 在接收模式下在接收模式下,数据被

31、接收到后,数据被接收到后,I2C 总线接口将总线接口将等待直到等待直到 IICDS 寄存器被程序读出。寄存器被程序读出。 在数据被在数据被读出之读出之前前,SCL 线保持低电平线保持低电平。新的数据从。新的数据从读出之后读出之后,SCL 线才释放线才释放。S3C2410 也利用中断来判别是否接收到了新的数也利用中断来判别是否接收到了新的数据。据。CPU收到中断请求之后,处理程序将从收到中断请求之后,处理程序将从IICDS 读取读取数据。数据。读写操作读写操作2022-3-1627 总线仲裁发生在两个主总线仲裁发生在两个主I2C设备中。如果一设备中。如果一个主设备欲使用总线,而测得个主设备欲使用

32、总线,而测得SDA为低电平,为低电平,则该主设备仲裁不能够使用总线启动传输。这则该主设备仲裁不能够使用总线启动传输。这个仲裁过程会延长,直到信号线个仲裁过程会延长,直到信号线SDA变为高电变为高电平。平。每次操作都要进行仲裁。每次操作都要进行仲裁。总线仲裁总线仲裁2022-3-1628S3C2410 I2C专用寄存器专用寄存器nS3C2410有有4个专用寄存器个专用寄存器Register Address R/W Description Reset Value IICCON0 x54000000 R/W IIC总线控制寄存器总线控制寄存器0 x0XIICSTAT0 x54000004 R/W I

33、IC总线控制总线控制/状态寄存器状态寄存器0 x0IICADD 0 x54000008 R/W IIC总线地址寄存器总线地址寄存器0 xXXIICDS0 x5400000C R/W IIC数据发送数据发送/接收寄存器接收寄存器0 xXX2022-3-16291. I2C控制寄存器(控制寄存器(IICCON)字段名字段名 位位意意 义义 初值初值 Acknowledgegeneration7 应答使能。应答使能。0:禁止应答;:禁止应答;1:自动应答:自动应答 应答电平:应答电平:Tx时为高;时为高;Rx时为低时为低00Tx clock sourceselection6 发送时钟分频选择。发送时

34、钟分频选择。 0:IICCLK = f f PCLK/16; 1:IICCLK = f f PCLK/5120Tx/Rx Interrupt5 收发中断控制位。收发中断控制位。0:禁止;:禁止;1:允许:允许0Interrupt Pending flag4 中断标志位。中断标志位。读:读:0无,无,1示有中断请求示有中断请求 写:写写:写0清除中断标志,写清除中断标志,写1不操作不操作0Transmitclock value3:0 发送时钟预分频值发送时钟预分频值。 Tx clock = IICCLK/(IICCON3:0+1)02022-3-1630说明:说明:(1)应答使能问题:一般情况下

35、为使能;在对)应答使能问题:一般情况下为使能;在对I2C EEPROM读最后读最后1个数据前可以禁止应答,便于产生结束信个数据前可以禁止应答,便于产生结束信号。号。(2)中断事件:)中断事件:1)完成收发;)完成收发;2)地址匹配;)地址匹配;3)总线仲)总线仲裁失败。裁失败。(3)中断控制位问题:设为)中断控制位问题:设为0时,中断标志位不能正确操时,中断标志位不能正确操作,故总设为作,故总设为1。(4)时钟预分频问题:当分频位选择为)时钟预分频问题:当分频位选择为0时,预分频值必时,预分频值必须大于须大于1。1. I2C控制寄存器(控制寄存器(IICCON)(Cont.)2022-3-16

36、31字段名字段名 位位意意 义义 初值初值 Mode selection7:6 工作模式选择。工作模式选择。 00:从收;:从收; 01:从发:从发 10:主收;:主收; 11:主发:主发00Busy / STARTSTOP condition5 忙状态忙状态/ /启、停控制启、停控制。读:。读:1 1示忙;示忙;0 0示闲示闲 写:写:0 0产生结束信号,产生结束信号,1 1产生启动信号产生启动信号0Serial output4 数据输出控制数据输出控制。0:禁止;:禁止;1:允许收发:允许收发0Arbitration Status flag3 仲裁状态标志。仲裁状态标志。0:仲裁成功;:仲

37、裁成功; 1:仲裁失败(因为在连续:仲裁失败(因为在连续I/O中)中)0Address-as-slavestatus flag2 从地址匹配状态。从地址匹配状态。 0:与:与IICADD不匹配不匹配 1:匹配。在收到:匹配。在收到SART/STOP时清时清00Address zerostatus flag1 0地址状态标志。地址状态标志。 0:收到的为非:收到的为非0地址地址1:收到:收到0地址。在收到地址。在收到SART/STOP时清时清00Last-received bitstatus flag0 最后收到位状态。最后收到位状态。0:最后位为:最后位为0,收到,收到 ACK; 1:最后位为

38、:最后位为1,未收到,未收到ACK。02. I2C控制状态寄存器控制状态寄存器(IICSTAT)2022-3-16322. I2C控制状态寄存器(控制状态寄存器(Cont.) IICSTAT控制字:控制字:启动主设备发送:启动主设备发送:0 xF0;结束主设备发送:;结束主设备发送:0 xD0启动主设备接收:启动主设备接收:0 xB0;结束主设备接收:;结束主设备接收:0 x902022-3-1633Register Address R/W Description Reset Value IICADD0 x54000008 R/W地址寄存器地址寄存器0 xXX字段名字段名 位位意意 义义 初值

39、初值 Slave address7:1 7位从地址。位从地址。0 xXXNot mapped0 不用不用- 说明:说明:(1)对从设备,该地址有意义,对主设备其值无意义。)对从设备,该地址有意义,对主设备其值无意义。(2)只有在不发送数据时(数据传送控制位)只有在不发送数据时(数据传送控制位IICSTAT4 =0)才能对其写;任何时间都可以读。才能对其写;任何时间都可以读。3. I2C地址寄存器(地址寄存器(IICADD)2022-3-16344. I2C数据发送数据发送/接收寄存器(接收寄存器(IICDS)Register Address R/W Description Reset Valu

40、e IICDS0 x5400000C R/W数据发送数据发送/接收移位寄存器接收移位寄存器0 xXX字段名字段名 位位意意 义义 初值初值 Data shift7:0 8位移位接收或移位发送的数据位移位接收或移位发送的数据0 xXX说明:说明:(1 1)在本设备接收时,对其作读操作得到对方发来的数据。任)在本设备接收时,对其作读操作得到对方发来的数据。任何时间都可以读。何时间都可以读。(2 2)在本设备发送时,对其写操作,将数据发向对方。)在本设备发送时,对其写操作,将数据发向对方。(3 3)欲发送数据,必须使数据传输控制位)欲发送数据,必须使数据传输控制位IICSTAT4=1IICSTAT4

41、=1才能才能对其写。对其写。2022-3-1635开开 始始设置设置IICCON从地址写入从地址写入IICDS写写0 xF0到到IICSTAT主机发送数据主机发送数据ACK、产生中断、产生中断要停止?要停止?等待停止位起作用等待停止位起作用清除中断标志清除中断标志清除中断标志清除中断标志发送数据写入发送数据写入IICDS写写0 xD0到到IICSTAT结结 束束YN写写SART启动传输启动传输写写STOP结束传输结束传输1.主主发发送送模模式式流流程程I2CI2C操作流程操作流程2022-3-1636开开 始始设置设置IICCON从地址写入从地址写入IICDS写写0 xB0到到IICSTAT主

42、机发送寻址字节主机发送寻址字节ACK、产生中断、产生中断要停止?要停止?等待停止位起作用等待停止位起作用清除中断标志清除中断标志清除中断标志清除中断标志从从IICDS中读数据中读数据写写0 x90到到IICSTAT结结 束束YN写写SART启动传输启动传输写写STOP结束传输结束传输主机发送数据主机发送数据2.主主接接收收模模式式流流程程2022-3-1637I2CI2C总线编程举例总线编程举例 nI2C总线编程除了需要对总线编程除了需要对I2C总线的总线的专用寄存器专用寄存器进行进行初始初始化化编程外,还需要编程外,还需要按照按照I2C总线的时序要求编写总线的时序要求编写传送程传送程序序和和

43、接收程序接收程序 (1)初始化编程)初始化编程 在任何在任何I2C总线的传送和接收操作之前,必须执行总线的传送和接收操作之前,必须执行初始化程序。初始化程序的主要功能是:初始化程序。初始化程序的主要功能是:n配置配置S3C2410芯片相关的芯片相关的I/O引脚为引脚为I2C总线所需的功能总线所需的功能引脚引脚n若有必要若有必要, 在在IICADD寄存器中写入本芯片的从地址寄存器中写入本芯片的从地址n设置设置IICCON寄存器,用来使能中断、设定寄存器,用来使能中断、设定SCL周期等周期等n设置设置 IICSTAT 以以使能使能传送模式传送模式等等 2022-3-1638例:试编写一程序,用例:

44、试编写一程序,用S3C2410的的I2C接口对串行接口对串行EEPROM(I2C接口)进行读接口)进行读/写操作,写入一组数据,然后读出并写操作,写入一组数据,然后读出并显示出来,检验是否正确。显示出来,检验是否正确。分析:分析:S3C2410的的I2C为主设备,串行为主设备,串行EEPROM的的I2C为从为从设备,进行的操作为主设备写和主设备读。设备,进行的操作为主设备写和主设备读。解:解: 1. 设置设置I2C控制寄存器控制寄存器1)收发传输:)收发传输:IICCON=0b 1 0 1 0 1111 = 0 xAF 含义:含义:应答使能应答使能、时钟分频为、时钟分频为 IICCLK = f

45、 PCLK /16 、中断使能中断使能、清除中断标志、清除中断标志、预分频值取预分频值取15。2)接收结束传输:)接收结束传输:IICCON=0b 0 0 1 0 1111 = 0 x2F 含义:含义:禁止应答(非应答)禁止应答(非应答)、时钟分频为、时钟分频为IICCLK = f PCLK /16 、中断使能中断使能、清除中断标志、清除中断标志、预分预分频值取频值取15。2022-3-16392. I2C控制状态寄存器控制状态寄存器1)主模式发送、启动传输)主模式发送、启动传输IICSTAT=0b 11 1 1 0 0 0 0 = 0 xF0含义:含义:主设备发送主设备发送、启动传输、启动传

46、输、输出使能输出使能、低、低4位为位为状态状态2)主模式发送、结束传输)主模式发送、结束传输IICSTAT=0b 11 0 1 0 0 0 0 = 0 xD0含义:主设备发送、含义:主设备发送、结束传输结束传输、输出使能、输出使能、低低4位为位为状态状态3)主模式接收、启动传输)主模式接收、启动传输IICSTAT=0b 10 1 1 0 0 0 0 = 0 xB0含义:含义:主设备接收主设备接收、启动传输、启动传输、输出使能输出使能、低、低4位为位为状态状态4)主模式接收、结束传输)主模式接收、结束传输IICSTAT=0b 10 0 1 0 0 0 0 = 0 x90含义:主设备接收、含义:主

47、设备接收、结束传输结束传输、输出使能、输出使能、低低4位为位为状态状态2022-3-1640 3. 地址寄存器设置地址寄存器设置1)S3C2410地址寄存器:地址寄存器:作为从设备地址为作为从设备地址为0 x10(作为主设备无意义)(作为主设备无意义)2)AT24C04 EEPROM芯片地址:芯片地址:作为从设备地址为作为从设备地址为0 xA0 注注*: AT24C04存储容量为存储容量为512字节,该器件的编址字节,该器件的编址为为1010A2A1P0,P0为页地址,为页地址,P0=0表示寻址低表示寻址低256字字节单元,节单元,P0=1表示寻址高表示寻址高256字节单元。字节单元。 4.

48、寻址字节值寻址字节值所寻址的所寻址的“从设备地址从设备地址+操作控制命令操作控制命令”(R/W):1)主设备发送:)主设备发送: 0 xA02)主设备接收:)主设备接收: 0 xA12022-3-1641#include #include 2410addr.h#include 2410lib.h#include def.h U32 _iicStatus;5. 5. 程序程序2022-3-1642void Test_Iic(void) unsigned int i,j; static U8 data256; Uart_Printf( IIC Test using AT24C02 n); rGPE

49、UP |= 0 xc000; /Pull-up resistors disable, P193表表8-22 rGPECON |= 0 xa0000000; /GPE15: IICSDA/GPE14: IICSCL, P192表表8-20 rIICCON = (17) | (06) | (15) | (0 xf); /rIICCON = 0 xAF rIICADD = 0 x10; / S3C2410作为作为I2C总线从设备的地址总线从设备的地址 rIICSTAT = 0 x10; /I2C总线数据输出允许总线数据输出允许(Rx/Tx)2022-3-1643 Uart_Printf(Write

50、test data into AT24C02(0-255)n); for(i=0;i256;i+) _Wr24C02(0 xa0,(U8)i,i); for(i=0;i256;i+) datai = 0; Uart_Printf(nRead test data from AT24C02n); for(i=0;i256;i+) _Rd24C02(0 xa1,(U8)i,&(datai); 存储器地址存储器地址存储数据存储数据所写数据所写数据存储器地址存储器地址2022-3-1644for(i=0;i16;i+) for(j=0;j16;j+) Uart_Printf(%2x ,datai*16+

51、j); Uart_Printf(n); 2022-3-1645void _Wr24C02(U8 slvAddr,U8 addr,U8 data) / slvAddr: 从设备地址,此处为从设备地址,此处为0 xa0 / addr: 待写入数据到芯片的地址待写入数据到芯片的地址 / data: 待写入的数据功能说明待写入的数据功能说明rIICDS = slvAddr; /发送从设备地址发送从设备地址 rIICSTAT = 0 xf0; /启动发送启动发送 while(rIICCON & 0 x10=0); /查询查询Tx中断状态中断状态 rIICDS = addr; /发送存储器地址发送存储器地

52、址 rIICCON = 0 xaf; /清除中断状态清除中断状态 while(rIICCON & 0 x10=0); /查询中断状态查询中断状态data = rIICDS; /接收数据接收数据 rIICCON = 0 xaf; /清除中断状态清除中断状态 2022-3-1646 while(rIICCON & 0 x10=0); /查询中断状态查询中断状态 while(rIICSTAT&1); /等待等待I2C EEPROM应答应答ACK rIICSTAT = 0 xd0; /Stop(Write) Delay(1); /等待停止结束生效等待停止结束生效2022-3-1647void _Rd2

53、4C02(U8 slvAddr,U8 addr,U8 *data ) / slvAddr: 从设备地址,此处为从设备地址,此处为0 xa1 / addr: 待读入数据的芯片地址待读入数据的芯片地址 / data: 待读入数据功能说明待读入数据功能说明rIICDS = slvAddr; /发送从设备地址发送从设备地址 rIICSTAT = 0 xf0; /启动发送启动发送 while(rIICCON & 0 x10=0); /查询查询Tx中断状态中断状态 rIICDS = addr; /发送存储器地址发送存储器地址 rIICSTAT = 0 xb0; /启动接收启动接收 rIICCON = 0

54、xaf; /清除中断状态清除中断状态 while(rIICCON & 0 x10=0); /查询查询Rx中断状态中断状态rIICDS = data; /接收数据接收数据 rIICCON = 0 xaf; /清除中断状态清除中断状态 2022-3-1648n9.3.1 CAN9.3.1 CAN总线总线q1.CAN1.CAN总线概述总线概述 控制器局域网控制器局域网CANCAN (Controller Area Net) (Controller Area Net)是是一种一种现场总线现场总线(Field Bus)(Field Bus),能有效地支持分,能有效地支持分布式控制和实时控制的串行通信网络

55、。布式控制和实时控制的串行通信网络。 19931993年年1111月,月,ISOISO正式颁布了控制器局域网正式颁布了控制器局域网CANCAN国国际标准际标准( (IS011898IS011898) )。 CANCAN最初是由最初是由德国德国BOSCHBOSCH公司公司( (中文网站中文网站http:/http:/) )于于19831983年为汽年为汽车监测和控制应用而开发的,目前车监测和控制应用而开发的,目前CANCAN已逐步已逐步应用到其它工业控制中,现已成为应用到其它工业控制中,现已成为ISO-11898ISO-11898、ISO11519-2ISO11519-2国际标准。国际标准。 9

56、.3 CAN总线接口总线接口2022-3-1649图图 CANCAN总线在汽车电子中的应用总线在汽车电子中的应用2022-3-1650q一个理想的由一个理想的由CANCAN总线构成的单一网络中可以总线构成的单一网络中可以挂接任意多个节点,实际应用中节点数目受网挂接任意多个节点,实际应用中节点数目受网络硬件的电气特性所限制。例如:当使用络硬件的电气特性所限制。例如:当使用Philips Philips P82C250P82C250作为作为CANCAN收发器收发器时,同一网时,同一网络中允许挂接络中允许挂接110110个节点个节点。CANCAN可提供可提供1Mbps1Mbps的数据传输速率。的数据

57、传输速率。CANCAN总线是一种多主方式的总线是一种多主方式的串行通信总线。基本设计规范要求有高的位速串行通信总线。基本设计规范要求有高的位速率,高抗电磁干扰性,并可以检测出产生的任率,高抗电磁干扰性,并可以检测出产生的任何错误。当何错误。当信号传输距离达到信号传输距离达到10Km10Km时时CANCAN总总线仍可提供高达线仍可提供高达5Kbps5Kbps的数据传输速率的数据传输速率。CANCAN总线具有很高的实时性能,已经在汽车工业、总线具有很高的实时性能,已经在汽车工业、航空工业、工业控制、安全防护等领域中得到航空工业、工业控制、安全防护等领域中得到了广泛应用。了广泛应用。2022-3-1

58、651图9.12 标准CAN总线网络示意图 2022-3-1652nCANCAN总线总线的通信介质可采用双绞线、同轴电缆和的通信介质可采用双绞线、同轴电缆和光导纤维,最常用的是双绞线。光导纤维,最常用的是双绞线。通信距离与波特通信距离与波特率有关,最大通信距离可达率有关,最大通信距离可达10km10km,最大通信波,最大通信波特率可达特率可达1Mbps1Mbps。CANCAN总线仲裁采用总线仲裁采用1111位标识和位标识和非破坏性位仲裁总线结构机制,可以确定数据块非破坏性位仲裁总线结构机制,可以确定数据块的优先级,保证在网络节点冲突时最高优先级节的优先级,保证在网络节点冲突时最高优先级节点不需

59、要冲突等待。点不需要冲突等待。CANCAN总线采用了多主竞争式总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。线以及广播通信的特点。CANCAN总线上任意节点可总线上任意节点可在任意时刻主动向网络上其他节点发送信息而不在任意时刻主动向网络上其他节点发送信息而不分主次,因此可在各节点之间实现自由通信。分主次,因此可在各节点之间实现自由通信。2022-3-1653nCANCAN总线信号总线信号使用使用差分电压传送差分电压传送,两条信号线两条信号线被称为被称为CAN_HCAN_H和和CAN_LCAN_L,静态时均是静态时均

60、是2.5V2.5V左左右,此时状态表示为右,此时状态表示为逻辑逻辑1 1,也可以叫做,也可以叫做“隐隐性性”。采用采用CAN_HCAN_H比比CAN_LCAN_L高表示逻辑高表示逻辑0 0,称为称为“显性显性”,通常电压值为,通常电压值为CAN_H=3.5VCAN_H=3.5V和和CAN_L=1.5VCAN_L=1.5V。当当“显性显性”位和位和“隐性隐性”位同位同时发送的时候,最后总线数值将呈现为时发送的时候,最后总线数值将呈现为“显显性性”。2022-3-1654nCANCAN总线总线的一个的一个位时间位时间可以分成四个部可以分成四个部分:分:同步段同步段,传播时间段传播时间段,相位相位(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论