第十七章串行通信与CAN总线基础曹家喆第一节串行通信的基本概念两种信息传输方式并行传输方式串行传输方式串行通信的相关规定串行通信需要“协议”协议内容信号电平的电压传送字符的格式信息传输的速率起始和结束约定等串行通信的字符格式异步通信起始位数据位奇偶校验位停止位空闲位串行通信的字符格式同步通信同步字符(SYN)数据块部分校验字符(CRC)串行通信的波特率(BaudRate)波特率数据传送的速率,它表示每秒钟传送的二进制代码的位数,单位是bit/s,一般写成bps。1波特=1bit/s波特率范围:一般在50~19200bps之间举例:波特率为1200bps,异步通信字符格式为8个数据位、1个起始位和1个停止位,即10位/帧,那么每秒钟能够传送的字符数就是:1200(bit/s)÷10(bit/字符)=120(字符/s)一些常用的串行通信总线标准串行通信总线标准种类RS-232,RS-422,RS-485等关于RS-232总线引脚标准电平标准“0”:+5~+15V“1”:-5~-15V最大传输距离:15m最高传输速率:约为20kbps(a)DB-25型连接器(b)DB-9型连接器RS-232标准通信接线双机通信简单的接线方法常用RS-232C接口电路:MC1488、MC1489等。前者将单片机用的TTL电平(0-5V)转换为RS-232C电平,后者则相反,将RS-232C电平转换为TTL电平0-5V0-5V-15V~+15V51系列微控制器串行接口串行口电路基本结构加上头尾成为一帧去掉头尾只留数据8位数据8位数据串行口的工作方式方式0数据位:8位仅配合移位寄存器,用于扩展并行口移位寄存器:串入/并出并入/串出发送时接收时方式0应用举例——多位数字显示串行口的工作方式控制线发送数据串行口的工作方式方式1帧格式:10位1个起始位8个数据位1个停止位起始位数据位停止位简单的“点对点”通信方法初始设定波特率设置及相关计算相关寄存器设定发送程序接收程序最简单的“单工”通信举例任务:由发送端控制接收端亮灯硬件线路方案设计fosc:11.0592MHz波特率:2400bps通信方式:方式1编程要点——发送程序主程序:ORG0000HAJMPMAINORG0023H;串行中断入口地址!AJMPSENDORG0100HMAIN:MOVTMOD,#20H;设定时器1方式2MOVTL1,#0F4H;设置波特率计数初值MOVTH1,#0F4H;设置波特率计数重装值SETBTR1;启动计时MOVSCON,#50H;设串行口方式1、允许接收SETBEA;允许中断SETBES;允许串行中断MOVA,#0FEH;第一个字符MOVSBUF,A;先发送一个字符数据SJMP$;等待中断编程要点——发送程序(续)中断服务程序:SEND:CLRTI;发送中断标志清0ACALLDEL;延时RLA;左移MOVSBUF,A;继续发送RETI;中断返回DEL:(略)编程要点——接收程序主程序:ORG0000HAJMPMAINORG0023H;串行中断入口地址!AJMPRECORG0100HMAIN:MOVTMOD,#20H;设定时器1方式2MOVTL1,#0F4H;设置计数初值MOVTH1,#0F4H;设置计数重装值SETBTR1;启动计时MOVSCON,#50H;设串行口方式1、允许接收SETBEA;允许中断SETBES;允许串行中断SJMP$;等待接收中断编程要点——接收程序(续)中断服务程序:REC:CLRRI;发送中断标志清0MOVA,SBUF;接收数据MOVP1,A;送到P1口RETI;中断返回END串行口的工作方式方式2帧格式11位(1个起始位、8个数据位、1个第9位、1个停止位)波特率固定为fosc/64应用:多机通信串行口的工作方式方式3帧格式:与方式2相同波特率:可设置波特率计算(同方式1)定时器初值计算(同方式1)应用:多机通信波特率384f256Xosc应用项目:车灯串行控制任务:以串行通信方式控制车灯关于计算机通信网络什么是通信网络多台计算机连成的通信系统实现资源信息共享网络的分类按照网络规模,可分为局域网、广域网等一个计算机网络CAN总线基础知识关于CAN(ControllerAreaNetwork)的概念一种通信网络关于局域网节点连接方式CAN就属于总线型局域网(a)星型(b)总线型(c)环型(d)树型电气设备的控制方式传统控制方式每个设备都有单独的连接线,连接线是专用的使用CAN的控制方式用较少的通信线传输多种控制信息,也叫多路传输多条线两条线采用CAN总线的意义(a)传统控制方式(b)CAN总线控制方式汽车使用CAN的意义节约导线简化维修提高可靠性共享信息资源信息传递速率可高达1Mbit/s采用CAN总线的意义车门控制单元为例若无CAN总线,完成其全部控制功能需要45根线和9个插头采用CAN总线的意义车门控制单元为例采用CAN总线后,完成其全部控制功能只需17根线、2个插头即可CAN总线的发展80年代末由德国Bosch公司最先提出最初动机:解决现代汽车中越来越多的ECU之间的通信问题,并简化线路1993年已形成国际标准ISO11898有关CAN的技术规范网络协议即各通信计算机之间约定的信息交换规则协议主要内容电气标准:传输导线、接头引脚、信号电压、数字逻辑等通信方式:通信速率、主从、优先规则等通信内容:数据格式、校验方式等车载网络协议标准分类低速总线标准(A类)如LIN(LocalInterconnectNetwork)中速总线标准(B类)如CAN高速总线标准(C类)如CAN、X-by-Wire、MOST等诊断系统总线标准OBD-II、OBD-III多媒体系统总线标准分为低速、高速和无线通信三种低速:用于远程通信高速:用于视频音频通信,如MOSTOBD-II端子相关引脚网关(gateway)是用于联系不同网络系统的接口控制器件具有从一个网络协议到另一个网络协议转换信息的能力工作原理接收A网络信息-处理转换-发送到B网络接收接收转换转换发送发送有关CAN的技术规范标准帧格式帧起始(SOF)仲裁场控制场数据场CRC场应答场帧结束有关CAN的技术规范0113.5V1.5V标准信号电平:差分形式隐性位:表示“0”VCANH=VCANL≈2.5V显性位:表示“1”VCANH=3.5VVCANL=1.5V示波器捕捉的CAN信号波形CAN_HCAN_LCAN总线的控制器件CAN总线控制器形成帧格式、发送、接收、校验等CAN总线收发器驱动、放大、形成差分信号CAN总线数据信息传输汽车上的CAN总线硬件示意图1-发动机的ECU2-ABS的ECU3-CAN总线4-终端电阻CAN总线在汽车中的应用CAN总线数据传输的层次发动机控制ECU悬架控制ECUABS控制ECUASR控制ECU网关1仪表显示ECU安全气囊ECU故障诊断ECU驾驶信息ECU网关2中央门锁ECU电动门窗ECU电动座椅ECU车灯控制ECU…高速总线中速总线低速总线……FlexRay:车内高速网络通讯系统LIN(LocalInterconnectNetwork)低速局域网Most(MediaOrientedSystemTransport)用于连接车载导航和无线电通讯设备CAN总线在汽车中的应用举例思考题1、简述什么是串行通信的单工、半双工和全双工方式。2、说明通信协议应包括那些最基本内容?3、一般异步通信的字符格式包含哪几部分?4、说明什么是波特率,以及串行通信一般波特率的范围。5、说明CAN的中文名称,汽车中使用CAN总线有什么好处?