版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CHAPTER 7嵌入式系统总线接口嵌入式系统总线接口2022-5-22内容提要内容提要串行接口串行接口I2C接口接口USB接口接口SPI接口接口PCI接口接口I2S总线接口总线接口2022-5-23内容提要内容提要串行接口串行接口I2C接口接口USB接口接口SPI接口接口PCI接口接口I2S总线接口总线接口2022-5-24串行接口基本原理与结构串行接口基本原理与结构o 概述概述n常用的数据通信方式有并行通信和串行通信两种。当两台数常用的数据通信方式有并行通信和串行通信两种。当两台数字设备之间传输距离较远时,数据往往以串行方式传输。串字设备之间传输距离较远时,数据往往以串行方式传输。串行通信
2、的数据是一位一位地进行传输的,在传输中每一位数行通信的数据是一位一位地进行传输的,在传输中每一位数据都占据一个固定的时间长度。与并行通信相比,如果据都占据一个固定的时间长度。与并行通信相比,如果n位位并行接口传送并行接口传送n位数据需时间位数据需时间T,则串行传送的时间最少为,则串行传送的时间最少为nT。串行通信具有传输线少、成本低等优点,特别适合远距。串行通信具有传输线少、成本低等优点,特别适合远距离传送。离传送。n串行数据通信模式串行数据通信模式o 单工通信:数据仅能从设备单工通信:数据仅能从设备A到设备到设备B进行单一方向的传输。进行单一方向的传输。o 半双工通信:数据可以从设备半双工通
3、信:数据可以从设备A到设备到设备B进行传输,也可以从设进行传输,也可以从设备备B到设备到设备A进行传输,但不能在同一时刻进行双向传输。进行传输,但不能在同一时刻进行双向传输。o 全双工通信:数据可以在同一时刻从设备全双工通信:数据可以在同一时刻从设备A传输到设备传输到设备B,或从,或从设备设备B传输到设备传输到设备A,即可以同时双向传输。,即可以同时双向传输。2022-5-25串行接口基本原理与结构串行接口基本原理与结构o 串行通信方式串行通信方式n串行通信在信息格式的约定上可以分为同步通信和异步通信串行通信在信息格式的约定上可以分为同步通信和异步通信两种方式。两种方式。n异步通信方式异步通信
4、方式o 数据是一帧一帧传送的,每帧数据包含有起始位(数据是一帧一帧传送的,每帧数据包含有起始位(”0”)、数)、数据位、奇偶校验位和停止位(据位、奇偶校验位和停止位(”1”) ,每帧数据的传送靠起始,每帧数据的传送靠起始位来同步。一帧数据的各位代码间的时间间隔是固定的,而相位来同步。一帧数据的各位代码间的时间间隔是固定的,而相邻两帧的数据其时间间隔是不固定的。在异步通信的数据传送邻两帧的数据其时间间隔是不固定的。在异步通信的数据传送中,传输线上允许空字符。异步通信对中,传输线上允许空字符。异步通信对字符的格式字符的格式、波特率波特率、校验位校验位有确定的要求。有确定的要求。o 字符的格式字符的
5、格式n每个字符传送时,必须前面加一起始位,后面加上每个字符传送时,必须前面加一起始位,后面加上1、1.5或或2位位停止位。例如停止位。例如ASCII码传送时,一帧数据的组成是:前面码传送时,一帧数据的组成是:前面1个起始个起始位,接着位,接着7位位ASCII编码,再接着一位奇偶校验位,最后一位停止编码,再接着一位奇偶校验位,最后一位停止位,共位,共10位。位。2022-5-26异步通信方式异步通信方式o 波特率波特率n传送数据位的速率称为波特率,用位秒(传送数据位的速率称为波特率,用位秒(bit/s)来表示,)来表示,称之为波特。例如,数据传送的速率为称之为波特。例如,数据传送的速率为120字
6、符秒,每帧字符秒,每帧包括包括10个数据位,则传送波特率为:个数据位,则传送波特率为:10120=1200b/s=1200波特波特n异步通信的波特率的数值通常为:异步通信的波特率的数值通常为:150、300、600、1200、2400、4800、9600、14400、28800等。等。o 校验位校验位n在一个有在一个有8位的字节(位的字节(byte)中,其中必有奇数个或偶数个)中,其中必有奇数个或偶数个的的“1”状态位。对于偶校验就是要使字符加上校验位有偶数状态位。对于偶校验就是要使字符加上校验位有偶数个个“1”;奇校验就是要使字符加上校验位有奇数个;奇校验就是要使字符加上校验位有奇数个“1”
7、。例。例如数据如数据“00010011”,共有奇数个,共有奇数个“1”,所以当接收器要接,所以当接收器要接收偶数个收偶数个“1”时(即偶校验时),则校验位就置为时(即偶校验时),则校验位就置为“1”,反,反之,接收器要接收奇数个之,接收器要接收奇数个“1”时(即奇校验时),则校验位时(即奇校验时),则校验位就置为就置为“0”。2022-5-27异步通信方式异步通信方式n一般校验位的产生和检查是由串行通信控制器内部自动产生,一般校验位的产生和检查是由串行通信控制器内部自动产生,除了加上校验位以外,通信控制器还自动加上停止位,用来除了加上校验位以外,通信控制器还自动加上停止位,用来指明欲传送字符的
8、结束。停止位通常取指明欲传送字符的结束。停止位通常取1、1.5或或2个位。对个位。对接收器而言,若未能检测到停止位则意味着传送过程发生了接收器而言,若未能检测到停止位则意味着传送过程发生了错误。错误。n在异步通信方式中,在发送的数据中含有起始位和停止位这在异步通信方式中,在发送的数据中含有起始位和停止位这两个与实际需要传送的数据毫无相关的位。如果在传送两个与实际需要传送的数据毫无相关的位。如果在传送1个个8位的字符时,其校验位、起始位和停止位都为位的字符时,其校验位、起始位和停止位都为1个位,则个位,则相当于要传送相当于要传送11个位信号,传送效率只有约个位信号,传送效率只有约80%。2022
9、-5-28同步通信方式同步通信方式o为了提高通信效率可以采用同步通信方式。同步传输采用字符块的方式,为了提高通信效率可以采用同步通信方式。同步传输采用字符块的方式,减少每一个字符的控制和错误检测数据位,因而可以具有较高的传输速减少每一个字符的控制和错误检测数据位,因而可以具有较高的传输速率。率。o与异步方式不同的是,同步通信方式不仅在字符的本身之间是同步的,与异步方式不同的是,同步通信方式不仅在字符的本身之间是同步的,而且在字符与字符之间的时序仍然是同步的,即同步方式是将许多的字而且在字符与字符之间的时序仍然是同步的,即同步方式是将许多的字符聚集成一字符块后,在每块信息(常常称之为信息帧)之前
10、要加上符聚集成一字符块后,在每块信息(常常称之为信息帧)之前要加上12个同步字符,字符块之后再加入适当的错误检测数据才传送出去。个同步字符,字符块之后再加入适当的错误检测数据才传送出去。在同步通信时必须连续传输,不允许有间隙,在传输线上没有字符传输在同步通信时必须连续传输,不允许有间隙,在传输线上没有字符传输时,要发送专用的时,要发送专用的”空闲空闲”字符或同步字符。字符或同步字符。o在同步方式中产生一种所谓在同步方式中产生一种所谓“冗余冗余”字符,防止错误传送。假设欲传送字符,防止错误传送。假设欲传送的数据位当作一被除数,而发送器本身产生一固定的除数,将前者除以的数据位当作一被除数,而发送器
11、本身产生一固定的除数,将前者除以后者所得的余数即为该后者所得的余数即为该“冗余冗余”字符。当数据位和字符。当数据位和“冗余冗余”字符位一起字符位一起被传送到接收器时,接收器产生和发送器相同的除数,如此即可检查出被传送到接收器时,接收器产生和发送器相同的除数,如此即可检查出数据在传送过程中是否发生了错误。统计数据表明采用数据在传送过程中是否发生了错误。统计数据表明采用”冗余冗余”字符方字符方法错误防止率可达法错误防止率可达99%以上。以上。2022-5-29RS-232C串行接口串行接口oRS-232C是美国电子工业协会是美国电子工业协会EIA制定的一种串行通信接口标准。制定的一种串行通信接口标
12、准。o(1)RS-232C接口规格接口规格:nRS-232C通常以通常以12V的电压来驱动信号线,的电压来驱动信号线,TTL标准与标准与RS-232C标准之间的电平转换电路通常采用集成电路芯片实标准之间的电平转换电路通常采用集成电路芯片实现,如现,如MAX232等。等。状态状态 L(低电平)(低电平) H(高电平)(高电平) 电压范围电压范围 -15V-3V +3 V+15V 逻辑逻辑 1 0 名称名称 SPACE MARK 2022-5-210RS-232C串行接口串行接口o(2)RS-232C接口信号接口信号nEIA制定的制定的RS-232C接口与外界的相连采用接口与外界的相连采用25芯(
13、芯(DB-25)和和9芯(芯(DB-9)D型插接件,实际应用中,并不是每只引脚信型插接件,实际应用中,并不是每只引脚信号都必须用到,号都必须用到,25芯和芯和9芯芯D型插接件引脚的定义,与信号之型插接件引脚的定义,与信号之间的对应关系图所示。间的对应关系图所示。2022-5-211RS-232C串行接口串行接口o(3)RS-232C的基本连接方式的基本连接方式n计算机利用计算机利用RS-232C接口进行串口通信,有简单连接和完全接口进行串口通信,有简单连接和完全连接两种连接方式。连接两种连接方式。n简单连接又称三线连接,即只连接发送数据线、接收数据线和简单连接又称三线连接,即只连接发送数据线、
14、接收数据线和信号地。信号地。n如果应用中还需要使用如果应用中还需要使用RS-232C的控制信号,则采用完全连的控制信号,则采用完全连接方式。在波特率不高于接方式。在波特率不高于9600 bps的情况下进行串口通信时,的情况下进行串口通信时,通信线路的长度通常要求小于通信线路的长度通常要求小于15米,否则可能出现数据丢失现米,否则可能出现数据丢失现象。象。简单连接形式 完全连接形式 2022-5-212RS-422串行通信接口串行通信接口oRS-422标准是标准是RS-232的改进型,的改进型,RS-422标准全称是标准全称是“平衡电平衡电压数字接口电路的电气特性压数字接口电路的电气特性”。允许
15、在相同传输线上连接多个接收。允许在相同传输线上连接多个接收节点,最多可接节点,最多可接10个节点,即一个主设备(个节点,即一个主设备(Master),其余),其余10个个为从设备(为从设备(Salve),从设备之间不能通信。),从设备之间不能通信。RS-422支持一点对支持一点对多点的双向通信。多点的双向通信。oRS-422的最大传输距离为的最大传输距离为4000英尺(约英尺(约1219m),最大传输速),最大传输速率为率为10Mb/s。传输速率与平衡双绞线的长度有关,只有在很短的。传输速率与平衡双绞线的长度有关,只有在很短的距离下才能获得最高传输速率。在最大传输距离时,传输速率为距离下才能获
16、得最高传输速率。在最大传输距离时,传输速率为100Kb/s。一般。一般100m长的双绞线上所能获得的最大传输速率仅长的双绞线上所能获得的最大传输速率仅为为1 Mb/s。oRS-422需要在传输电缆的最远端连接一个电阻,要求电阻阻值约需要在传输电缆的最远端连接一个电阻,要求电阻阻值约等于传输电缆的特性阻抗。在短距离(等于传输电缆的特性阻抗。在短距离(300m以下)传输时可以不以下)传输时可以不连接电阻。连接电阻。2022-5-213RS-485串行总线接口串行总线接口o在在RS-422基础上,基础上,EIA制定了制定了RS-485标准,增加了多点双向通信标准,增加了多点双向通信能力。在通信距离几
17、十米至上千米时,通常采用能力。在通信距离几十米至上千米时,通常采用RS-485收发器。收发器。oRS-485收发器采用平衡发送和差分接收,即在发送端,驱动器将收发器采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号电平信号转换成差分信号输出;在接收端,接收器将差分信号变成变成TTL电平,因此具有抑制共模干扰能力。接收器能够检测低达电平,因此具有抑制共模干扰能力。接收器能够检测低达200mV的电压,具有高灵敏度,故数据传输距离可达千米以上。的电压,具有高灵敏度,故数据传输距离可达千米以上。oRS-485可以采用二线与四线方式,二线制可实现真正
18、的多点双向可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与通信。而采用四线连接时,与RS-422一样只能实现点对多的通信,一样只能实现点对多的通信,即只能有一个主设备,其余为从设备。即只能有一个主设备,其余为从设备。RS-485可以连接多达可以连接多达32个个设备。设备。oRS-485的共模输出电压在的共模输出电压在-7+12V之间,接收器最小输入阻抗为之间,接收器最小输入阻抗为12k。RS-485满足所有满足所有RS-422的规范,所以的规范,所以RS-485的驱动器的驱动器可以在可以在RS-422网络中应用。网络中应用。RS-485的最大传输速率为的最大传输速率
19、为10Mb/s。在最大传输距离时,传输速率为在最大传输距离时,传输速率为100Kb/s。oRS-485需要两个终端电阻,接在传输总线的两端,电阻阻值约等需要两个终端电阻,接在传输总线的两端,电阻阻值约等于传输电缆的特性阻抗。在短距离传输(于传输电缆的特性阻抗。在短距离传输(300m以下)时可不需终以下)时可不需终端电阻。端电阻。oUART简介简介nUART(Universal Asynchronous Receiver and Transmitter,通用异步收发器)主要由数据线接口、控制逻辑、配置寄存器、波特通用异步收发器)主要由数据线接口、控制逻辑、配置寄存器、波特率发生器、发送部分和接收
20、部分组成,采用异步串行通信方式,采用率发生器、发送部分和接收部分组成,采用异步串行通信方式,采用RS-232C 9芯接插件芯接插件(DB-9)连接,是广泛使用的串行数据传输方连接,是广泛使用的串行数据传输方式式. nUART以字符为单位进行数据传输,每个字符的传输格式如图所示,包以字符为单位进行数据传输,每个字符的传输格式如图所示,包括线路空闲状态(高电平)、起始位(低电平)、括线路空闲状态(高电平)、起始位(低电平)、58位数据位、校位数据位、校验位(可选)和停止位(位数可以是验位(可选)和停止位(位数可以是1、1.5或2位)。这种格式通过)。这种格式通过起始位和停止位来实现字符的同步。起始
21、位和停止位来实现字符的同步。UART内部一般具有配置寄存器,内部一般具有配置寄存器,通过该寄存器可以配置数据位数(通过该寄存器可以配置数据位数(58位)、是否有校验位和校验的位)、是否有校验位和校验的类型以及停止位的位数类型以及停止位的位数2022-5-214S3C2410A 的的UART2022-5-215S3C2410A 的的UARTo UART结构结构nS3C2410A的的UART提供提供3个独立的异步串行个独立的异步串行I/O口(口(SIO),它们都),它们都可以运行于中断模式或可以运行于中断模式或DMA模式。在使用系统时钟的情况下,模式。在使用系统时钟的情况下,UART可以支持最高可
22、以支持最高230.4Kbps的传输速率。如果外部设备通过的传输速率。如果外部设备通过UEXTCLK为为UART提供时钟,那么提供时钟,那么UART的传输速率可以更高。每个的传输速率可以更高。每个UART通道通道包含两个用于接收和发送数据的包含两个用于接收和发送数据的16字节的字节的FIFO缓冲寄存器。缓冲寄存器。n如图所示,如图所示,S3C2410A的的UART由波特率发生器、发送器、接收器以由波特率发生器、发送器、接收器以及控制单元组成。波特率发生器的时钟可以由及控制单元组成。波特率发生器的时钟可以由PCLK或或UEXTCLK提供。提供。发送器和接收器包含发送器和接收器包含16字节的字节的F
23、IFO缓冲寄存器和数据移位器。发送时,缓冲寄存器和数据移位器。发送时,数据被写入数据被写入FIFO,然后拷贝到发送移位器中,接下来数据通过发送数,然后拷贝到发送移位器中,接下来数据通过发送数据引脚(据引脚(TxDn)被发送。接收时,接收到的数据从接收数据引脚)被发送。接收时,接收到的数据从接收数据引脚(RxDn)移入,然后从移位器拷贝到)移入,然后从移位器拷贝到FIFO中。中。 2022-5-216S3C2410A 的的UARTo UART结构结构S3C2410A的UART方框图2022-5-217S3C2410A UART的操作的操作o S3C2410A的的UART的操作包含有数据发送、数据
24、接收、中断的操作包含有数据发送、数据接收、中断产生、波特率发生、回送模式、红外模式和自动流控制等。产生、波特率发生、回送模式、红外模式和自动流控制等。o (1)数据发送()数据发送(Data Transmission)n发送的数据帧是可编程的。它包括发送的数据帧是可编程的。它包括1个起始位、个起始位、58个数据个数据位、位、1个可选的奇偶校验位和个可选的奇偶校验位和12个停止位,具体设置由行个停止位,具体设置由行控制寄存器(控制寄存器(ULCONn)确定。)确定。o (2)数据接收()数据接收(Data Reception)n与数据发送类似,接收的数据帧也是可编程的。它包括与数据发送类似,接收
25、的数据帧也是可编程的。它包括1个起个起始位,始位,58个数据位、个数据位、1个可选的奇偶校验位和个可选的奇偶校验位和12个停止个停止位,具体设置由行控制寄存器(位,具体设置由行控制寄存器(ULCONn)确定。接收器可)确定。接收器可以检测溢出错误和帧错误。溢出错误指新数据在旧数据还没以检测溢出错误和帧错误。溢出错误指新数据在旧数据还没有被读出之前就将其覆盖了。帧错误指接收的数据没有有效有被读出之前就将其覆盖了。帧错误指接收的数据没有有效的停止位。的停止位。2022-5-218S3C2410A UART的操作的操作o(3)自动流控制()自动流控制(Auto Flow Control,AFC)nS
26、3C2410A的的UART0和和UART1使用使用nRTS和和nCTS信号支持自动流信号支持自动流控制。在这种情况下,它可以连接到外部的控制。在这种情况下,它可以连接到外部的UART。如果用户希望。如果用户希望将将UART连接到连接到Modem,则需要通过软件来禁止则需要通过软件来禁止UMCONn寄存器中寄存器中的自动流控制位并控制的自动流控制位并控制nRTS信号。信号。2022-5-219S3C2410A UART的操作的操作o (4) RS-232接口n如果用户希望将如果用户希望将UART连接到连接到Modem接口,则需要使用接口,则需要使用nRTS、nCTS、nDSR、nDTR、DCD和
27、和nRI信号。在这个状态,用户可以信号。在这个状态,用户可以使用通用的使用通用的I/O接口,通过软件来控制这些信号,因为接口,通过软件来控制这些信号,因为AFC不支持不支持RS-232C接口。接口。o (5)中断DMA请求产生(Interrupt/DMA Request Generation)nS3C2410A的每个的每个UART有有5个状态(个状态(Tx/Rx/Error)信号:溢出)信号:溢出错误、帧错误、接收缓冲数据准备好、发送缓冲空和发送移位器空。错误、帧错误、接收缓冲数据准备好、发送缓冲空和发送移位器空。这些状态通过相关的状态寄存器(这些状态通过相关的状态寄存器(UTRSTATn/U
28、ERSTATn)指示。)指示。n溢出错误和帧错误指示接收数据时发生的错误状态。如果控制寄存溢出错误和帧错误指示接收数据时发生的错误状态。如果控制寄存器器UCONn中的接收错误状态中断使能位置中的接收错误状态中断使能位置1,那么溢出错误和帧错,那么溢出错误和帧错误的任何一个都可以产生接收错误状态中断请求。当检测到接收错误的任何一个都可以产生接收错误状态中断请求。当检测到接收错误状态中断请求时,可以通过读误状态中断请求时,可以通过读UERSTSTn的值来确定引起请求的的值来确定引起请求的信号。信号。2022-5-220S3C2410A UART的操作的操作o(6)波特率的产生(Baud-Rate
29、Generation)n每个每个UART的波特率发生器为发送器和接收器提供连续的时钟。波的波特率发生器为发送器和接收器提供连续的时钟。波特率发生器的时钟源可以选择使用特率发生器的时钟源可以选择使用S3C2410A的内部系统时钟或的内部系统时钟或UEXTCLK。换句话说,通过设置。换句话说,通过设置UCONn的时钟选择位可以选择不的时钟选择位可以选择不同的分频值。波特率时钟可以通过对源时钟(同的分频值。波特率时钟可以通过对源时钟(PCLK或者或者UEXTCLK)16分频和对在分频和对在UART波特率系数寄存器(波特率系数寄存器(UBRDIVn)中的)中的16位分位分频数设置得到。频数设置得到。o
30、(7)回送模式(Loopback Mode) nS3C2410A DART提供一种测试模式,即回送模式,用于发现通提供一种测试模式,即回送模式,用于发现通信连接中的孤立错误。这种模式在结构上使信连接中的孤立错误。这种模式在结构上使UART的的RXD与与TXD连连接。因此,在这个模式,发送的数据通过接。因此,在这个模式,发送的数据通过RXD被接收器接收。这一被接收器接收。这一特性使得处理器能够验证每个特性使得处理器能够验证每个SIO通道内部发送和接收数据的正确通道内部发送和接收数据的正确性。该模式通过设置性。该模式通过设置UART控制寄存器(控制寄存器(UCONn)的回送位来进行)的回送位来进行
31、选择。选择。 o8)红外模式(Infra-Red (IR) Mode)nS3C2410A的的UART模块支持红外发送和接收,该模式可以通过设模块支持红外发送和接收,该模式可以通过设置置UART行控制寄存器(行控制寄存器(ULCONn)中的红外模式位来选择。)中的红外模式位来选择。2022-5-221UART 特殊寄存器o (1) UART 行控制寄存器(ULCONn)o (2) UART 控制寄存器(UCONn)o (3) UART FIFO 控制寄存器(UFCONn)o (4) UART MODEM 控制寄存器(UMCONn)o (5) UART 接收发送状态寄存器(UTRSTATn)o (
32、6) UART 错误状态寄存器(UERSTATn)o (7) UART FIFO 状态寄存器(UFSTATn)o (8) UART MODEM 状态寄存器(UMSTATn)o (9) UART 发送缓存寄存器(UTXHn)o (10) UART 接收缓存寄存器(URXHn)o (11) UART 波特率除数寄存器(UBRDIVn) 见课本P166-167页2022-5-222S3C2410A UART串行接口电路串行接口电路o 要完成最基本的串行通信功能,实际上只需要要完成最基本的串行通信功能,实际上只需要RXD、TXD和和GND即可。由于即可。由于RS-232C标准所定义的高、低电平信号标准
33、所定义的高、低电平信号与与S3C2410A系统的系统的LVTTL电路所定义的高、低电平信号电路所定义的高、低电平信号不同,不同,RS-232C标准采用负逻辑方式,标准逻辑标准采用负逻辑方式,标准逻辑“1”对应对应-3V-15V电平,标准逻辑电平,标准逻辑“0”对应对应+3V+15V电平。电平。而而LVTTL的标准逻辑的标准逻辑“1”对应对应23.3V电平,标准逻辑电平,标准逻辑“0”对应对应00.4V电平。显然,两者间要进行通信必须经过信电平。显然,两者间要进行通信必须经过信号电平的转换。目前常使用的电平转换电路有号电平的转换。目前常使用的电平转换电路有MAX232等。等。2022-5-223
34、S3C2410A UART与与RS-422和和RS-485接口电路接口电路o 一个采用一个采用MAX487与与S3C2410A的的UART1连接,构成支持连接,构成支持RS422和和RS485接口电路如图所示。接口电路如图所示。RS422至少分别有一至少分别有一个差分发送口和差分接收口。两节点通信时,一方的发送个差分发送口和差分接收口。两节点通信时,一方的发送口与另一方的接收口相连,需两根线。口与另一方的接收口相连,需两根线。RS422不能直接用不能直接用于三点以上的直接互连,也不能直接用总线连接。电路中于三点以上的直接互连,也不能直接用总线连接。电路中采用两片采用两片MAX487E,分别构成
35、,分别构成RS422发送和接收通道。发送和接收通道。o RS485的差分发送口与自身的差分接收口同相并连,多点的差分发送口与自身的差分接收口同相并连,多点间连接通过间连接通过RS485总线只需一对线。电路中采用一片总线只需一对线。电路中采用一片MAX487E构成构成RS485的发送和接收通道。的发送和接收通道。2022-5-224S3C2410A UART编程实例编程实例o 本程序实例实现从本程序实例实现从UART0接收数据,然后分别从接收数据,然后分别从UART0和和UART1发送出去。其功能可以把键盘敲击的字符通过发送出去。其功能可以把键盘敲击的字符通过PC机机的串口发送给的串口发送给AR
36、M系统上的系统上的UART0,ARM系统上的系统上的UART0接收到字符后,再通过接收到字符后,再通过UART0和和UART1送给送给PC机,机,这样就完成了串口间的收发数据。这样就完成了串口间的收发数据。o 1定义与UART相关的寄存器#define rULCON0(*(volatile unsigned*)0 x50000000) /UART0行控制寄存器#define rUCON0(*(volatile unsigned*)0 x50000004) /UART0控制寄存器#define rUFCON0(*(volatile unsigned*)0 x50000008) /UART0 FI
37、FO控制寄器#define rUMCON0(*(volatile unsigned*)0 x5000000c) /UART0 Modem控制寄存器2022-5-225S3C2410A UART编程实例编程实例o 2初始化操作n参数参数pclk为时钟源的时钟频率,为时钟源的时钟频率,band为数据传输的波特率,初始化函数为数据传输的波特率,初始化函数Uart_Init 的实现如下:的实现如下:void Uart_Init(int pclk,int baud) int I; if (pclk= =0) pclkPCLK; rUFCON0=0 x0; /UART0 FIFO控制寄存器,FIFO禁止
38、rUFCON1=0 x0; /UART1 FIFO控制寄存器,FIFO禁止 rUFCON2=0 x0; /UART2 FIFO控制寄存器,FIFO禁止 rUMCON0=0 x0; /UARTO MODEM控制寄存器,AFC禁止 rUMCON1=0 x0; /UART1 MODEM控制寄存器,AFC禁止 /UART0 rULCON00 x3 ; /行控制寄存器:正常模式,无奇偶校验,1位停止位,8位数据位 rUCON00 x245 ; /控制寄存器 rUBRDIV0 =(int)(pclk/16/baud)-1) ; /波特率因子寄存器 /UART1 rULCON1=0 x3; rUCON1=0
39、 x245; rUBRDIV1=(int)(pclk/16/baud)-1); /UART2 rULCON2=0 x3; rUCON20 x245; rUBRDIV2=(int)(pclk/16/baud)-1);2022-5-226S3C2410A UART编程实例编程实例o3发送数据n其中其中whichUart为全局变量,指示当前选择的为全局变量,指示当前选择的UART通道,使用串口发送一个字节通道,使用串口发送一个字节的代码如下:的代码如下:void Uart_SendByte(int data) if(whichUart= =0) if(data= =n) while(!(rUTRST
40、AT00 x2); Delay(10); /延时,与终端速度有关 rUTXH0=(r); while(!(rUTRSTAT00 x2); /等待,直到发送状态就绪 Delay(10); WrUTXH0(data); else if(whichUart= =1) if(data=n) while(!(rUTRSTAT10 x2); Delay(10); /延时,与终端速度有关 rUTXH1=r; while(!(rUTRSTAT10 x2); /等待,直到发送状态就绪 Delay(10); rUTXH1data; 2022-5-227S3C2410A UART编程实例编程实例o 4接收数据n如果
41、没有接收到字符则返回0。使用串口接收一个字符的代码如下: char Uart_GetKey(void) if(whichUart0) if(rUTRSTAT00 x1) /UARTO接收到数据 return RdURXH0(); else return 0; else if(whichUart= =1) if(rUTRSTAT10 x1) /UART1接收到数据 return RdURXH1(); else return 0; else if(whichUart= =2) if(rUTRSTAT20 x1) /UART2接收到数据 return RdURXH2(); else return 0
42、; else return 0; 2022-5-228S3C2410A UART编程实例编程实例o 5主函数n实现的功能为从UART0接收字符,然后将接收到的字符再分别从UART0和UART1送出去,其中Uart_Select(n)用于选择使用的传输通道为UARTn。代码如下:includestringhinclude”INCconfigh”void Main(void)char data;Target_Init();while(1)data=Uart GetKey(); /接收字符if(data!0 x0)Uart_Select(0); /从UART0发送出去Uart_Printf(”key
43、cn”,data);Uart_Select (1); /从UART1发送出去Uart_Printf(”keyc n”,data);Uart_Select(0); 2022-5-229内容提要内容提要串行接口串行接口I2C接口接口USB接口接口SPI接口接口PCI接口接口I2S总线接口总线接口2022-5-230I2C接口基本原理与结构接口基本原理与结构o I2C BUS(Inter Integrated Circuit BUS,内部集成电路总,内部集成电路总线)是由线)是由Philips公司推出的二线制串行扩展总线,用于连接微控公司推出的二线制串行扩展总线,用于连接微控制器及其外围设备。制器及
44、其外围设备。I2C总线是具备总线仲裁和高低速设备同步总线是具备总线仲裁和高低速设备同步等功能的高性能多主机总线,直接用导线连接设备,通信时无需等功能的高性能多主机总线,直接用导线连接设备,通信时无需片选信号。片选信号。o 在在I2C总线上,只需要两条线总线上,只需要两条线串行数据串行数据SDA线和串行时钟线和串行时钟SCL线,它们用于总线上器件之间的信息传递。线,它们用于总线上器件之间的信息传递。SDA和和SCL都是都是双向的。每个器件都有一个唯一的地址以供识别,而且各器件都双向的。每个器件都有一个唯一的地址以供识别,而且各器件都可以作为一个发送器或接收器(由器件的功能决定)。可以作为一个发送
45、器或接收器(由器件的功能决定)。2022-5-231I2C接口基本原理与结构接口基本原理与结构o I2C总线有如下操作模式:主发送模式、主接收模式、从发送模总线有如下操作模式:主发送模式、主接收模式、从发送模式、从接收模式。下面介绍其通用传输过程、信号及数据格式。式、从接收模式。下面介绍其通用传输过程、信号及数据格式。o I2C总线的启动和停止信号总线的启动和停止信号n当当I2C接口处于从模式时,要想数据传输,必须检测接口处于从模式时,要想数据传输,必须检测SDA线上的启线上的启动信号,启动信号由主器件产生。在动信号,启动信号由主器件产生。在SCL信号为高时,信号为高时,SDA产生产生一个由高
46、变低的电平变化,即产生一个启动信号。当一个由高变低的电平变化,即产生一个启动信号。当I2C总线上产总线上产生了启动信号后,那么这条总线就被发出启动信号的主器件占用了,生了启动信号后,那么这条总线就被发出启动信号的主器件占用了,变成变成“忙忙”状态;在状态;在SCL信号为高时,信号为高时,SDA产生一个由低变高的产生一个由低变高的电平变化,产生停止信号。停止信号也由主器件产生,作用是停止电平变化,产生停止信号。停止信号也由主器件产生,作用是停止与某个从器件之间的数据传输。当与某个从器件之间的数据传输。当I2C总线上产生了一个停止信号总线上产生了一个停止信号后,那么在几个时钟周期之后总线就被释放,
47、变成后,那么在几个时钟周期之后总线就被释放,变成“闲闲”状态。状态。2022-5-232I2C接口基本原理与结构接口基本原理与结构o主器件产生一个启动信号后,它还会立即送出一个从地址,用来通知将主器件产生一个启动信号后,它还会立即送出一个从地址,用来通知将与它进行数据通信的从器件。与它进行数据通信的从器件。1个字节的地址包括个字节的地址包括7位的地址信息和位的地址信息和1位位的传输方向指示位,如果第的传输方向指示位,如果第7位为位为“0”,表示马上要进行一个写操作;,表示马上要进行一个写操作;如果为如果为“1”,表示马上要进行一个读操作。,表示马上要进行一个读操作。o(2)数据传输格式)数据传
48、输格式nSDA线上传输的每个字节长度都是线上传输的每个字节长度都是8位,每次传输中字节的数量是没有限位,每次传输中字节的数量是没有限制的。在起始条件后面的第一个字节是地址域,之后每个传输的字节后面制的。在起始条件后面的第一个字节是地址域,之后每个传输的字节后面都有一个应答(都有一个应答(ACK)位。传输中串行数据的)位。传输中串行数据的MSB(字节的高位)首先(字节的高位)首先发送。发送。o(3)应答信号)应答信号n为了完成为了完成1个字节的传输操作,接收器应该在接收完个字节的传输操作,接收器应该在接收完1个字节之后个字节之后发送发送ACK位到发送器,告诉发送器,已经收到了这个字节。位到发送器
49、,告诉发送器,已经收到了这个字节。ACK脉冲信号在脉冲信号在SCL线上第线上第9个时钟处发出(前面个时钟处发出(前面8个时钟完成个时钟完成1个字节个字节的数据传输,的数据传输,SCL上的时钟都是由主器件产生的)。当发送器要接上的时钟都是由主器件产生的)。当发送器要接收收ACK脉冲时,应该释放脉冲时,应该释放SDA信号线,即将信号线,即将SDA置高。接收器在置高。接收器在接收完前面接收完前面8位数据后,将位数据后,将SDA拉低。发送器探测到拉低。发送器探测到SDA为低,为低,就认为接收器成功接收了前面的就认为接收器成功接收了前面的8位数据。位数据。2022-5-233I2C接口基本原理与结构接口
50、基本原理与结构o(4)总线竞争的仲裁)总线竞争的仲裁nI2C总线上可以挂接有多个器件,有时会发生两个或多个主器件同总线上可以挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况。时想占用总线的情况。I2C总线具有多主控能力,可对发生在总线具有多主控能力,可对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是:当多个主器件同时想占线上的总线竞争进行仲裁,其仲裁原则是:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭总线电平不
51、符的那个器件将自动关闭其输出级。其输出级。o(5)I2C总线的数据传输过程总线的数据传输过程n 开始:主设备产生启动信号,表明数据传输开始。开始:主设备产生启动信号,表明数据传输开始。n 地址:主设备发送地址信息,包含地址:主设备发送地址信息,包含7位的从设备地址和位的从设备地址和1位的数位的数据方向指示位(读或写位,表示数据流的方向)。据方向指示位(读或写位,表示数据流的方向)。n 数据:根据指示位,数据在主设备和从设备之间进行传输。数数据:根据指示位,数据在主设备和从设备之间进行传输。数据一般以据一般以8位传输,最重要的位放在前面;具体能传输多少量的数位传输,最重要的位放在前面;具体能传输
52、多少量的数据并没有限制。接收器产生据并没有限制。接收器产生1位的位的ACK(应答信号)表明收到了每(应答信号)表明收到了每个字节。传输过程可以被中止和重新开始。个字节。传输过程可以被中止和重新开始。n 停止:主设备产生停止信号,结束数据传输。停止:主设备产生停止信号,结束数据传输。2022-5-234S3C2410A的的I2C接口接口o S3C2410A提供一个提供一个I2C总线接口,具有一个专门的串行数据线总线接口,具有一个专门的串行数据线和串行时钟线。它有主设备发送模式、主设备接收模式、从设备和串行时钟线。它有主设备发送模式、主设备接收模式、从设备发送模式和从设备接收模式发送模式和从设备接
53、收模式4种操作模式。种操作模式。o 控制控制S3C2410A I2C总线操作,需要写数据到总线操作,需要写数据到IICCON(I2C总总线控制寄存器)、线控制寄存器)、IICSTAT(I2C总线控制总线控制/状态寄存器)、状态寄存器)、IICDS(I2C总线总线Tx/Rx数据寄存器)和数据寄存器)和IICADD(I2C总线地址总线地址寄存器)。寄存器)。2022-5-235I2C相关寄存器相关寄存器o (1)IICCON (I2C总线控制寄存器)总线控制寄存器)2022-5-236I2C相关寄存器相关寄存器o (2) IICSTAT(I2C总线控制状态寄存器)总线控制状态寄存器)2022-5-
54、237I2C相关寄存器相关寄存器o (3) IICADD(I2C总线地址寄存器)总线地址寄存器)2022-5-238I2C相关寄存器相关寄存器o (4) IICDS(移位数据寄存器)2022-5-239S3C2410A的的I2C接口应用实例接口应用实例o S3C2410A I2C总线与使用总线与使用I2C总线的总线的EEPROM芯片芯片KS24C080C连接电路如图所示。连接电路如图所示。KS24C080C作为I2C从设备,其地址为0 xA0,S3C2410A通过I2C总线对该芯片进行读写操作。2022-5-240S3C2410A的的I2C接口应用实例接口应用实例o (1)I2C接口初始化接口
55、初始化n首先必须进行首先必须进行I2C端口初始化,然后配置端口初始化,然后配置I2C控制寄存器。控制寄存器。I2C接口接口初始化操作通过函数初始化操作通过函数void iic_init()完成。()完成。o 2)I2C写操作写操作nI2C写操作通过函数写操作通过函数void iic_write_24C08(LJ32 slvAddr,U32 addr,U8 data)完成,其中,完成,其中,slvAddr为从设备地址,在本为从设备地址,在本系统中为系统中为0 xA0,addr为待写入数据到芯片的地址;为待写入数据到芯片的地址;data为待写入为待写入的数据。的数据。I2C写操作代码如下所示。写操
56、作代码如下所示。2022-5-241S3C2410A的的I2C接口应用实例接口应用实例n填写填写I2C命令命令I2C缓冲区数据及大小。缓冲区数据及大小。n设置从设备地址并启动设置从设备地址并启动I2C操作。在操作。在I2C轮询函数中进行读写轮询函数中进行读写操作,操作完毕,操作,操作完毕,iicdata tx size将被置为将被置为 1。n等待写操作完成。等待写操作完成。2022-5-242S3C2410A的的I2C接口应用实例接口应用实例n等待从设备应答。等待从设备应答。2022-5-243内容提要内容提要串行接口串行接口I2C接口接口USB接口接口SPI接口接口PCI接口接口I2S总线接
57、口总线接口2022-5-244USB接口基本原理与结构接口基本原理与结构o USB(Universal Serial Bus,通用串行总线)是由,通用串行总线)是由Compaq、HP、Intel、Lucent、Microsoft、NEC和和Philips等公司制定的连接计算机与外围设备的机外总线。等公司制定的连接计算机与外围设备的机外总线。o 1USB总线的主要性能特点n(1)热即插即用)热即插即用n(2)可连接多个外部设备)可连接多个外部设备n(3)可同时支持不同同步和速率的设备)可同时支持不同同步和速率的设备n(4)较强的纠错能力)较强的纠错能力n(5)低成本的电缆和连接器)低成本的电缆和
58、连接器n(6)总线供电)总线供电2022-5-245USB接口基本原理与结构接口基本原理与结构o 2USB系统结构n(1)USB设备设备o USB设备分为设备分为Hub(集线器)和(集线器)和Function(功能)两大类。(功能)两大类。Hub提供到提供到USB的附加连接点,的附加连接点,Function为主机系统提供附加为主机系统提供附加的性能。实际上,的性能。实际上,Function就是可发送和接收就是可发送和接收USB数据的、可数据的、可实现某种功能的实现某种功能的USB设备。设备。USB设备应具有标准的设备应具有标准的USB接口。接口。n(2)USB主机主机o 在任何一个在任何一个U
59、SB系统中只有一个主机,到主计算机系统的系统中只有一个主机,到主计算机系统的USB接口被称作主控制器。主控制器可采用硬件、固件或软件相结接口被称作主控制器。主控制器可采用硬件、固件或软件相结合的方式来实现,与合的方式来实现,与Hub集成在主机系统内,向上与主总线集成在主机系统内,向上与主总线(如(如PCI总线)相连,向下可提供一或多个连接点。总线)相连,向下可提供一或多个连接点。n(3)USB互连互连o USB互连指的是互连指的是USB设备与主机的连接和通信方式,它包括总设备与主机的连接和通信方式,它包括总线拓扑结构、内层关系、数据流模型和线拓扑结构、内层关系、数据流模型和USB调度表。调度表
60、。2022-5-246USB接口基本原理与结构接口基本原理与结构o3物理接口nUSB总线的电缆有一对标准尺寸的双绞信号线和一对标准尺寸的电源线,共4根导线。nUSB总线支持480Mb/s(高速)、12Mb/s(全速)、1.5Mb/s(低速)3种的数据传输速率。nUSB2.0支持在主控制器与Hub之间用高速、全速和低速数据传输,Hub与设备之间以全速或低速传输数据。o4电源n(1)电源分配o电源分配用来处理USB设备如何使用主机通过USB总线提供的电源。主机可以为直接连接到它的USB设备提供电源,Hub也对它所连接的USB设备提供电源。每根USB电缆提供的电源功率是有限的。完全依赖电缆供电的称作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 减脂期糍粑课件
- 法学博士学术报告-法学博士贡献与启示
- 2024执法考试模拟试题七
- 八年级地理上册期末试题 (二)
- 信号与线性系统教学资料 第7讲
- 成都市第三十六中学校2014年11月周考政治试卷
- 2026 减脂期天然零食课件
- 面瘫康复基础护理知识
- 2026 增肌期训练前饮食课件
- 2026 增肌期答疑解惑课件
- 无人机消防救灾
- T-CECA 20011-2021 含铁含锰地下水接触氧化法给水处理技术规程
- 实验动物学日常检测流程规定
- 中小学实验教学基本目录(2023 年版)
- 操作系统(第5版)全套课件
- 兄弟套结机KE-430F中文使用说明书
- 上海市2025上海申康医疗卫生建设工程公共服务中心工作人员招聘1人笔试历年参考题库附带答案详解
- 2025广东汕头【中考】物理真题(原卷及答案)
- 2025年潍坊市中考数学试题卷(含标准答案)
- 2025年移动l1传输认证考试题库及答案
- 民法典与生活同行宣传手册
评论
0/150
提交评论