1.串口介绍:①串口:一种应用十分广泛的通讯接口。成本低、容易使用、通信线路简单,可实现 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?两个设备的互相通信。 ? ? ? ? ? ? ? ? ? ? ?②51单片机串口:?资源:内部自带UART(Universal Asynchronous Receiver ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Transmitter,通用异步收发器),可实现单片机的串口通 ?????????????????????????????????????????????????????????????????信。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??作用:可以使单片机与单片机、单片机与电脑、单片机与各式各 ?????????????????????????????????????????????????????????????????样的模块互相通信,极大的扩展了单片机的应用范围,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?增强了单片机系统的硬件能力。 ? ? ? ? ? ? ? ? ? ? ?③硬件电路:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??电平标准:数据1和数据0的表达方式,是传输线缆中人为规定的电压 ????????????????????????????????????????????????????????????????与数据的对应关系。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??串口常用的三种电平标准(采用二进制来表示数据时): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??TTL电平(晶体管-晶体管逻辑电平):+5V表示1, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??0V表示0。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??RS232电平:-3~-15V表示1, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? +3~+15V表示0。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??RS485电平:两线压差+2~+6V表示1, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -2~-6V表示0。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(差分信号)
? ? ? ? ? ? ? ? ? ? ?④常见通信接口比较: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2.串行通讯基础: ? ? ? ? ? ? ? ? ? ? ? ? ? ①通讯:部件之间的数字信号传输→方式:?并行通讯:数据的各位同时传送 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?串行通讯:数据一位一位地顺序传送 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ②单工通信与双工通信: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ③总线:连接各个设备的公共数据传输线路。
? ? ? ? ? ? ? ? ? ? ? ? ? ④异步通讯与同步通讯(串行通讯按串行数据的时钟方式分类): ???????????????????????????????(1)异步通讯:通信中的发送端和接收端,使用各自的时钟控制数据的发送 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 和接收。(“各自约定通讯速率”) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 过程中,两个字符帧(以字符为单位组成)之间的时间间隔是 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不固定的,而在同一个字符帧内各位的时间间隔是固定的。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【注:发送端和接收端的时钟控制各自独立,互不同步, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??但时钟需尽可能一致以便协调】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???缺点:因位功能的占用、间隙存在使传输效率较有降低 ?????????????????????????????????????????字符帧(又称:数据帧):起始位+数据位+奇偶校验位+停止位 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【注:奇偶校验规则:采用数据位后面补码的方式。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?当通讯双方约定为奇校验时,若数据位有奇数个“1”,则补码 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?为“0”;若数据位有偶数个“1”,补码为“1”以凑齐奇数个 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?“1”。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?当通讯双方约定为偶校验时,若数据位有奇数个“1”,则补码 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?为“1”以凑齐偶数个“1”;若数据位有偶数个“1”,补码为“0”以 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?保证偶数个?“1”。】 ?????????????????????????????????????????波特率:每秒钟传送二进制数码的位数,也叫比特数。表示数据传输的 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 速度。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【单位:b/s(位/秒)或 bps(bit per second)】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?通常,异步通信的波特率为50~19200bps,一般为1200的整 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?数倍。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {注:字符的实际速率速度是每秒内所传字符帧的帧数} ?????????????????????????????????????????异步串口(如:UART):无专门的时钟线,只有1-2根数据线,收发双 ?????????????????????????????????????????????????????????????????????????????????????方依据事先约定好的协议通信。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可靠性相对较差,速率在1Mbps以下。 ???????????????????????????????(2)同步通信:发送端时钟建立对接收方时钟的直接控制,使双方达到完全 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 同步。(“靠一根时钟线约定通讯速率”) ?????????????????????????????????????????实现方式:Ⅰ.外同步:数据发送之前,发送端发送时钟信号,接收端 ????????????????????????????????????????????????????????????????????????????????接收此时钟信号后与其评率固定。 ??????????????????????????????????????????????????????????????Ⅱ.自同步:接收端检测接收同步字符,准备接收数据,然 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?后连续发送整组数据。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(同步字符+数据字符+校验字符CRC) ?????????????????????????????????????????同步串口(如:SPI、IIC、IIS):具有至少一根时钟线、1-2根数据线 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?的串行通讯方式,利用时钟沿对齐数 ?????????????????????????????????????????????????????????????????????????????????????????????????据。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?较为可靠,可以实现很高的通讯速率 ???????????????????????????????????????????????????????????????????????????????????????????????(1Mbps以上,可达Gbps级别)。
3.51单片机的串行接口: ?????????????????????????资源:内部集成1~2个可编程通用异步串行通信接口(UART),采用全双工制 ??????????????????????????????????????式。有四种工作方式,可通过软件编程设置为8位、10位和11位的帧格 ??????????????????????????????????????式,并能设置各种波特率。 ?????????????????????????串行口结构: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????????????设置工作方式(51单片机有四种工作方式,通过写串口控制寄存器来设置): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)串行口控制寄存器SCON(Serial Control Register): ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)串行口工作方式: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?①方式0: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?②方式1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?③方式2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?④方式3:波特率可变的11位UART通信方式。除波特率外,方式3与 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?方式2完成相同。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)波特率设置: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?①介绍: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(注:选用11.0592MHz晶振的原因: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?②设置串口波特率步骤: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?③常用的波特率及获得方法: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?④51单片机串行通讯中断服务程序格式: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
4.串行通讯协议: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ①通信协议: ?????????????????????????????????????????概念:为成功通讯而设置的语言及规则的配合 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?包括内容:优先权、唤醒访问、握手、幅度、速度等等 ?????????????????????????????????????????三要素:语法(“怎么讲”)、语义(“讲什么”)、定时顺序(“事件如 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 何”)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②串行通讯协议: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ㈠ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ㈡ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ⅰ.常用串行通讯协议: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Ⅱ.EIA串行通讯标准: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
5.数据显示模式: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ①HEX模式、十六进制模式、二进制模式:以原始数据的形式显示
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②文本模式/字符模式:以原始数据编码后的形式显示 ????????????????????????????(注:以ASCII码的表示为标准。如:十进制数65~90表示英文字母A~Z; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'a'由十进制数97~122表示,显示的是十六 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?进制数61。)
6.程序试验: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ①串口向计算机发送数据(注:MUC只发送不接收) →
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②计算机通过串口控制LED状态: →
|