汽车单片机原理及应用-串行接口_第1页
汽车单片机原理及应用-串行接口_第2页
汽车单片机原理及应用-串行接口_第3页
汽车单片机原理及应用-串行接口_第4页
汽车单片机原理及应用-串行接口_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第九讲 串行接口技术主要内容: NEC的单片机内部集成了丰富的串行口资源,如UART,3线串口〔SPI〕,IIC,LIN总线接口,CAN总线接口及USB接口。可以根据需求选择适宜的单片机型号用于目标系统的开发。PD78F0547D内部的串口主要包括UART,3线串口〔SPI〕,IIC。3线串口UARTIIC总线3线串行接口3线串行接口特性全双工数据通信可配置主设备或从设备模式可编程时钟输出可选择MSB-first或LSB-first方式可工作在操作停止模式,以降低功耗

3线串行接口CSI引脚描述

引脚名称类型描述SCK10/SCK11I/O串行时钟输入输出,由主设备提供发送时钟SI10/SI11I接收数据引脚SO10/SO11O发送数据引脚SSI11I仅用于CSI11及从设备模式;可使用CSIM11规定是否使用该引脚3线串行接口的存放器(1)发送缓冲存放器1n(SOTB1n) 用于设置发送数据。允许发送后,通过将数据写入SOTB1n来启动发送/接收操作。(2)串行I/O移位存放器1n(SIO1n) 如果串行操作模式存放器1n〔CSIM1n〕的第6位〔TRMD1n〕=0,那么从SIO1n读取数据可启动接收操作。(3)串行操作模式存放器1n〔CSIM1n〕 CSIM1n用于选择操作模式、允许或禁止操作。格式见下页。(4)串行时钟选择存放器1n(CSIC1n)该存放器规定数据发送/接收的时序,并设置串行时钟。格式见下页。(5)端口模式存放器0和1〔PM0,PM1〕 当P10/SCK10和P04/SCK11用作串行接口的时钟输出引脚时,对PM10和PM04清零,并将P10、P04的输出锁存器的值设置为1。 当P12/SO10和P02/SO11用作串行接口的数据输出引脚时,那么对PM12和PM02清零,并将P12和P02的输出锁存器的值设置为0。3线串行接口串行操作模式存放器1n〔CSIM1n〕的格式:3线串行接口串行时钟选择存放器1n(CSIC1n)的格式:3线串行接口NEXT串行时钟选择存放器1n(CSIC1n)的格式:3线串行接口端口模式存放器0和1〔PM0,PM1〕的格式:3线串行接口注:根据串行口的定义,要对端口0和1进行相应的设置。3线串行接口的操作

1.停止3线串口的操作设置串行操作模式存放器1n〔CSIM1n〕的第7位〔CSIE1n〕为0,停止操作。停止3线串口CSI10的程序例如:CLR1 CSIM10.72.3线串口的输入输出操作<1>设置CSIC1n存放器<2>设置CSIM1n存放器的第0位和第4~6位〔CSOT1n、DIR1n、SSE11〔仅见于串行接口CSI11〕和TRMD1n〕。<3>CSIM1n的第7位〔CSIE1n〕置1。 允许发送/接收。<4>将数据写入发送缓冲存放器1n〔SOTB1n〕。 启动发送/接收操作。 从串行I/O移位存放器1n〔SIO1n〕中读取数据。启动数据接收操作。3-线串口的应用

以ST7920A为例,介绍采用3-线串口控制LCD显示的软硬件设计。12864B2汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字〔16X16点阵〕、128个字符〔8×16点阵〕及64×256点阵显示RAM〔GDRAM〕。主要技术参数和显示特性:电源:VDD3.3V~+5V(内置升压电路,无需负压);显示内容:128列×64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等128X64HZ引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位18NC空脚19LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-OV)接口时序

接口时序串行数据传送共分三个字节完成:第一字节:串口控制—格式11111ABCA为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCDB为数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式DDDD0000第三字节:(并行)8位数据的低4位—格式0000DDDD串行接口时序参数:(测试条件:T=25℃VDD=4.5V)串行时钟主要参数要求:时钟频率:470~590KHz,典型值:530KHz;占空比:45%~55%,典型值:50%;上升/下降沿时间:最大0.2usLCD与微控制器的硬件接口设计

软件设计

软件的功能是在LCD上以4行的形式显示:横看成岭竖成峰,远近上下各不同。不知庐山真面目,只源身在此山中。MainCSEG CSEG Main: CALL !SEL_LCD CALL !LCD_INIT Main00: MOV T500ms_counter,#250 CALL !DELAY_500ms ;延时500MS

MOVW HL,#DISP_CODE MOV COMMAND,#80H ;第1行 CALL !DISP

MOV T500ms_counter,#250 CALL !DELAY_500ms ;延时500MS INCW HL MOV COMMAND,#90H ;第2行 CALL !DISP

MOV T500ms_counter,#250 CALL !DELAY_500ms ;延时500MS INCW HL MOV COMMAND,#88H ;第3行 CALL !DISP

MOV T500ms_counter,#250 CALL !DELAY_500ms ;延时500MS INCW HL MOV COMMAND,#98H ;第4行 CALL !DISP BR $Main00DISP字函数的功能:(1)发送命令字节(2)发送数据字节;一个程序循环完成一个显示字节的发送,循环DISP显示直至检测到00H或20H,完成一行信息的显示,返回。IICI2C总线接口特性标准I2C总线接口可配置为主设备、从设备模式可编程时钟双向数据传输支持多主设备从设备能够通过硬件自动地检测接收到的状态和数据引脚描述引脚名称类型描述SDA0I/O串行数据输入输出,使用开漏输出,因此需配置上拉电阻SCL0I/O串行时钟输入输出,使用开漏输出,因此需配置上拉电阻串行总线配置举例I2C接口的存放器IIC移位存放器0(IIC0)IIC0用于8位串行数据和8位并行数据的相互转换,并且和串行时钟同步。IIC0可以用来发送和接收数据。格式如下:I2C接口的存放器从设备地址存放器0(SVA0)该存放器用于在从设备模式下存储本地地址。但是当STD0=1时,禁止重写该存放器(当检测到起始条件时)格式如下:I2C接口的存放器IIC控制存放器0(IICC0)这个存放器用于允许/停止I2C的操作、设置等待时间和设置I2C的其他操作。格式如下:I2C接口的存放器IIC控制存放器0(IICC0)I2C接口的存放器IIC控制存放器0(IICC0)I2C接口的存放器IIC控制存放器0(IICC0)I2C接口的存放器IIC控制存放器0(IICC0)I2C接口的存放器IIC控制存放器0(IICC0)I2C接口的存放器IIC状态存放器0(IICS0)此存放器用于表示I2C的状态。仅当STT0=1且在等待期间,才能通过1位或8位存储器操作指令读取IICS0。格式如下:I2C接口的存放器IIC状态存放器0(IICS0)I2C接口的存放器IIC状态存放器0(IICS0)I2C接口的存放器IIC状态存放器0(IICS0)I2C接口的存放器IIC状态存放器0(IICS0)I2C接口的存放器IIC标志存放器0(IICF0)此存放器用于设置I2C的操作模式,并指示I2C总线的状态。格式如下:I2C接口的存放器IIC标志存放器0(IICF0)I2C接口的存放器IIC时钟选择存放器0(IICCL0)此存放器用来为I2C总线设置传送时钟。I2C接口的存放器IIC时钟选择存放器0(IICCL0)I2C接口的存放器IIC功能扩展存放器0(IICX0)此存放器用于设置I2C的功能扩展。I2C传送时钟设置方法I2C接口的存放器端口模式存放器6(PM6)此存放器可以按位设置端口6的输入/输出操作模式。当P60/SCL0引脚用于时钟I/O同时将P61/SDA0引脚用于串行数据I/O时,将PM60和PM61清零,且将P60和P61的输出锁存器清零。在设置输出模式之前应将IICE0(IIC控制存放器0(IICC0)的第7位)设为1,这是因为当IICE0为0时,P60/SCL0和P61/SDA0引脚输出低电平(恒定)。可由1位或8位存储器操作指令设置PM6。格式如下:I2C总线定义和控制方法以下图显示了通过I2C串行数据总线的“起始条件〞,“地址〞,“数据〞和“停止条件〞等信号输出时的传送时序。1.起始条件SCL0引脚处于高电平且SDA0引脚从高电平变为低电平时,满足起始条件。当启动串行传送时,SCL0引脚和SDA0引脚的起始条件是由主设备产生并发给从设备的信号。当使用从设备时,可以检测到起始条件。2.地址地址由起始条件之后的7位数据指定。一个地址是一个输出的7位数据段,用于选择一个通过总线与主设备相连的从设备。因此,通过总线相连的每个从设备必须有一个唯一的地址。从设备包括具有以下功能的硬件:检测起始条件,检查7位地址数据是否与存储在从设备地址存放器0(SVA0)中的数据相匹配。传送方向指示除了7-位地址数据之外,主设备还发送1位数据用于指示传送方向。当传送方向指示位的值为“0〞时,表示主设备正向从设备传送数据。当传送输方向指示位的值为“1〞时,表示主设备正接收来自从设备的数据。4.应答信号(ACK)ACK信号用于检测处于发送方和接收方的串行数据的状态。5.停止条件SCL0引脚处于高电平时,将SDA0引脚从低电平变为高电平可以产生一个停止条件。停止条件是一个信号,它在串行传送操作结束时由主设备产生并发送给从设备。当作为从设备使用时,可以检测到停止条件。6.等待等待状态用来通知通信另一方,设备(主设备或从设备)正准备发送或者接收数据(即处于等待状态)。主设备也能通过以下任何一种方法取消等待状态。通过把IICC0的第1位(STT0)设为1通过把IICC0的第0位(SPT0)设为17.取消等待I2C通常通过如下处理方式取消一个等待状态。把数据写入IIC移位存放器0(IIC0)设置IIC控制存放器0(IICC0)的第5位(WREL0)(取消等待)设置IICC0存放器的第1位(STT0)(产生起始条件,仅用于主设备)设置IICC0存放器的第0位(SPT0)(产生停止条件,仅用于主设备)8.地址匹配的检测方法在I2C总线模式下,主设备可以通过发送的从设备地址来选择指定的从设备。可以通过硬件自动检测到地址匹配。当将一个本地地址设置到从设备地址存放器0(SVA0)中且该地址与主设备发送的从设备地址匹配时,或者接收到扩展码时,都将产生一个中断请求(INTIIC0)。9.错误检测I2C总线模式下,在数据发送期间通过发送设备的IIC移位存放器(IIC0)捕获串行数据总线(SDA0)的状态,因此发送前的IIC0数据可以用来和已发送的IIC0数据比较,以此来实现对发送错误的检测。当比较值不匹配时,可以判断存在一个发送错误。10.扩展码(1)当接收地址的高4位为“0000〞或“1111〞时,代表接收到扩展码的扩展码接收标志(EXC0)被设为1,并且在第8个时钟的下降沿产生中断请求(INTIIC0)。而存放在从设备地址存放器0(SVA0)中的本地地址不受影响。(2)如果由一个10位地址传送设置SVA0为“111100〞且主设备传送的值为“111100〞,那么其结果如下所示。注意在第8个时钟的下降沿产生INTIIC0。数据的高4位匹配: EXC0=1〔IIC状态存放器0(IICS0)的第5位〕7位数据匹配: COI0=1〔IIC状态存放器0(IICS0)的第4位〕(3)由于中断请求发生之后的处理过程随扩展码之后的数据而有所不同,因此这样的处理过程由软件来执行。11.唤醒功能I2C总线从设备唤醒功能是,在接收到本地地址及扩展码时产生一个中断请求信号(INTIIC0)。此功能通过在地址不匹配时禁止产生不必要的INTIIC0信号,使处理更加有效。12.通信操作(1)主设备操作(单主设备系统)(2)从设备操作12.通信操作-(2)从设备操作设置以下3个标志,并传递给主程序,这样可以执行数据通信处理过程。<1>通信模式标志此标志指示以下两种通信状态。去除模式: 未进行数据通信通信模式: 进行数据通信(从有效地址检测到停止条件检测,不检测来自主设备的ACK信号,地址不匹配)<2>准备标志此标志表示允许进行数据通信。它的功能和普通数据通信的INTIIC0中断相同。通过中断效劳可以设置此标志,通过主程序可以将该标志清零。通信启动时,可由中断效劳将此标志清零。但是,在发送第一个数据时不能由中断效劳设置准备标志。因此,发送第一个数据时该标志未清零(认为地址匹配是下一个数据发送请求)。<3>通信方向标志此标志指示通信方向。它的值与TRC0相同。IIC应用例如利用PD78F0547D的P62引脚连接CAT24WC02的WP引脚,用于写保护控制;I2C总线的SCL0,SDA0分别与EEPROM的SCL,SDA连接,构成串行时钟和数据总线的控制通道。IIC应用例如软件设计下面以最复杂的页写和顺序读为例说明EEPROM读写控制的软件设计。程序名及功能描述见下表UARTUART总线接口

特性最大传输率:312.5kbps双引脚配置:TXD0:发送数据输出引脚 RXD0:接收数据输入引脚可选择通信数据的宽度为7或8位。专用内置5位波特率发生器,允许设置任意大小的波特率。可分别执行发送和接收操作(全双工操作)。恒为LSB-first通信引脚描述引脚名称类型描述TxD0O串行数据发送引脚RxD0I串行数据接收引脚UART0串行接口的存放器接收缓冲存放器0(RXB0)接收移位存放器0(RXS0)发送移位存放器0(TXS0)异步串行接口操作模式存放器0(ASIM0)异步串行接口接收错误状态存放器0(ASIS0)波特率发生器控制存放器0(BRGC0)端口模式存放器1(PM1)串行接口UART0的操作(1) 使用的存放器异步串行接口操作模式存放器0(ASIM0)异步串行接口接收错误状态存放器0(ASIS0)波特率发生器控制存放器0(BRGC0)端口模式存放器1(PM1)端口存放器1(P1)在UART模式中设置操作的根本过程如下。<1>设置BRGC0存放器.<2>设置ASIM0的1~4位(SL0、CL0、PS00和PS01)。<3>将ASIM0的第7位(POWER0)置1。<4>将ASIM0的第6位(TXE0)置1。允许发送。将ASIM0的第5位(RXE0)置1。允许接收。<5>对TXS0存放器赋值。开始发送数据。UART0操作例如UART0的初始化例如UART0初始化,启动控制,停止控制: (1)根本时钟:fXCLK0=250KHz(fx=8MHz);K=13;波特率=9600KHz(波特率=fXCLK0/2K) (2)7位数据,无校验位,1位停止位 (3)内部操作时钟禁止D_ASIM0 EQU 00H ;D_BRGC0 EQU11001101BUART0_INIT: MOV BRGC0,#D_BRGC0 ; MOV ASIM0,#D_ASIM0 ; CLR1 PM1.0 SET1 PM1.1 SET1 P1.0 RETUART0操作例如UART0的启动例如UART0_START: ;只发送

SET1 ASIM0.7 NOP NOP SET1 ASIM0.6 RET UART0操作例如UART0的停止例如UART0_STOP: CLR1 ASIM0.6 NOP NOP CLR1 ASIM0.7 RET通信操作(a)正常发送/接收数据的格式一个数据帧由以下各位组成。起始位

...1位

字符位...7或

8位

(LSB-first)校验位...偶校验、奇校验、零校验或无校验停止位...1或2位通信操作(b)发送当异步串行接

温馨提示

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

最新文档

评论

0/150

提交评论