1 / 71

Communications

通信基础知识. Communications. 通信方式的几个要素 串行、并行( Serial/parallel ) 同步、异步( Synchronous/asynchronous ) 点对点、总线( Point-to-point/bus ) 半双工、全双工( Half-duplex/full-duplex ) 主从式、对等式( Master-slave/equal partners ) 单端信号、差分信号( Single-ended/differential ). 通信基础知识 —— 串行、并行. Communications -characteristics.

badu
Download Presentation

Communications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 通信基础知识 Communications • 通信方式的几个要素 • 串行、并行(Serial/parallel) • 同步、异步(Synchronous/asynchronous) • 点对点、总线(Point-to-point/bus) • 半双工、全双工(Half-duplex/full-duplex) • 主从式、对等式(Master-slave/equal partners) • 单端信号、差分信号(Single-ended/differential) 微控制器开发技术

  2. 通信基础知识——串行、并行 Communications -characteristics • 串行通信 • 数据按位传输 • 通信方只需要很少的连接 – resource/pin efficient • 速度较慢,传输信息少 • 传输距离较远 • 并行通信 • 数据按字节/字传输 • 通信方需要多个连接信号-- difficult for PCB routing • 传输速度快 • 传输距离较短 你接触过哪些串行/并行通信? 微控制器开发技术

  3. 通信基础知识——同步、异步 Communications -characteristics • 同步通信 • 接收方可以得到发送方的通信时钟信号 • 传输速率高 • 异步通信 • 发送方和接收方使用独立的时钟来处理通信信号 • 通信双方约定通信速率 • 通信中需要约定起始/停止位或定义特殊的帧结构 • 传输速率较低 微控制器开发技术

  4. 通信基础知识——拓扑结构 Communications -characteristics • 点对点 • 通信线路上只有两个通信方 • 不需要寻址 • 总线 • 通信线路上有多个通信方 • 需要建立寻址机制 微控制器开发技术

  5. 通信基础知识——半双工、全双工 Communications -characteristics • 半双工 • 不能同时进行发送和接收 • 一方发送时,其他通信方只能处于接收状态 • 需要额外的逻辑来控制发送和接收状态的切换 • 有发生冲突的危险 • 全双工 • 通信端可以同时进行发送和接收 • 需要两个独立的通信通道 • 使用简单,数据传输率高 对讲机?电话机? 微控制器开发技术

  6. 通信基础知识——主从式、对等式 Communications -characteristics • 主从式 • 只有主端可以发起数据传输 • 从端等待主端的允许才能传输数据 • 对等式 • 任何节点可以发起数据传输 • 需要建立冲突检测和仲裁机制 微控制器开发技术

  7. 通信基础知识——单端、差分信号 Communications -characteristics • 单端信号 • 信号幅度以地电平作为参考 • 通信双方必须建立共同的参考地电平 • 干扰造成的信号幅度变化可能导致错误解释 • 差分信号 • 每个信号使用两根线传输,信号的值由两个线上的电平的差值表示 • 通信方不需要共同的参考地 • 对干扰抑止能力强 • 传输速率高 微控制器开发技术

  8. 微控制器常见的通信类型 微控制器开发技术

  9. 10.2 同步串行外设接口SPI 单片机原理及应用

  10. 本节提要 一、SPI概述 二、SPI模块功能 三、SPI模块引脚 四、SPI模块寄存器 五、SPI模块编程范例 微控制器开发技术

  11. 本节提要 一、SPI概述 二、SPI模块功能 三、SPI模块引脚 四、SPI模块寄存器 五、SPI模块编程范例 微控制器开发技术

  12. SPI 特性 • 可设置主机模式 / 从机模式 • 可选择8位或16位数据宽度 • 可选择全双工模式 ( 一个)或单线双向模式 • 可灵活设置的时钟极性和相位 • 可选择从最高位或最低位开始传送 • 可编程的传送速率 • 可实现双缓存操作 • 与LCD驱动器, D/A 转换器, RTC,EEPROM等通信接口简单; 微控制器开发技术

  13. SPI的数据流动 微控制器开发技术

  14. SPI工作原理 IO端 CPU端 MOSI 7 7 MISO 0 0 重复8次 IO端 CPU端 MOSI 7 0 7 0 MISO 微控制器开发技术

  15. 本节提要 一、SPI概述 二、SPI模块功能 三、SPI模块引脚 四、SPI模块寄存器 五、SPI模块编程范例 微控制器开发技术

  16. SPI 方框图 移位寄存器 SPI 时钟发生器 控制寄存器 微控制器开发技术

  17. 主机模式 • 控制整个数据传送 • 通过定义SS 选择通信从机 • 确定SCK 波特率,相位和极性 • 切换SCK 脉冲 • 驱动MOSI信号 • 采样MISO信号 • 通过写入SPIDR触发传输过程 微控制器开发技术

  18. 从机模式 • 响应传输 • 仅当定义了相应的SS才被激活 • 利用事先定义的相位和极性检测SCK跳变沿 • 驱动MISO信号 • 采样MOSI信号 微控制器开发技术

  19. 本节提要 一、SPI概述 二、SPI模块功能 三、SPI模块引脚 四、SPI模块寄存器 五、SPI模块编程范例 微控制器开发技术

  20. SPI 引脚1 —— 串行数据引脚 MOSI — Master Out/Slave In Pin MISO — Master In/Slave Out Pin 作用:发送和接收串行数据 • SPI置为主机模式:MISO – 数据输入线 • MOSI – 数据输出线 • SPI置为从机模式:MISO – 数据输出线 • MOSI – 数据输入线 . 微控制器开发技术

  21. SPI 引脚2 —— 串行时钟 SCK — Serial Clock Pin 同步信号,对MOSI和MISO引脚传输的串行输入、输出数据进行同步 • 主机模式下,SCK信号来源于内部MCU总线时钟 • 主机和从机在SCK信号的跳变沿进行移位和采样数据 • SCK的时钟频率由SPI0BR选择 • 主机和从机遵守相同时序模式 . 微控制器开发技术

  22. SPI 信号 – SCK极性 & 相位 SCK奇数跳变沿驱动,偶数跳变沿采样 微控制器开发技术

  23. SPI 信号 –SCK极性 & 相位(续) SCK偶数跳变沿驱动,奇数跳变沿采样 微控制器开发技术

  24. SPI 引脚3 —— 外设片选 SS — Slave Select Pin 主机和从机对SS引脚使用不同 • 主机模式:SS信号上拉到高电平 • 从机模式:SS信号为低电平 . 微控制器开发技术

  25. 本节提要 一、SPI概述 二、SPI模块功能 三、SPI模块引脚 四、SPI模块寄存器 五、SPI模块编程范例 微控制器开发技术

  26. SPI 寄存器 1/4 SPICR1 - SPI 控制寄存器 1 1 = SPI IS MASTER 0 = SPI IS SLAVE 1 = SPI LSB FIRST 0 = SPI MSB FIRST 1 = SPI Transmit Interrupt Enable 0 = SPI Transmit Interrupt Disabled DDRS7 SSOE MASTER MODE SLAVE MODE 0 0 SS INPUT SS INPUT (MODF Enabled) 0 1 GP INPUT SS INPUT 1 0 GP OUTPUT SS INPUT 1 1 SS OUTPUT SS INPUT 1 = SPI SYSTEM Enabled 0 = SPI SYSTEM Disabled 1 = SPI Interrupt Enabled 0 = SPI Interrupt Disabled SPICR2 - SPI 控制寄存器 2 SPISWAI = SPI Stop in Wait Mode 1 = HALT SSI CLOCK WHEN CPU IN WAIT MODE MODFEN - Mode Fault Enable 0 = Mode Fault Disabled 1 = Mode Fault Enabled BIDIROE - Output Enable in Bidirectional mode 0 = Output Buffer Disabled 1 = Output Buffer Enabled 微控制器开发技术

  27. SPI 寄存器 2/4 练习: 20M 总线时钟, 最大 SPI 波特率 = ? 最小SPI 波特率 = ? 微控制器开发技术

  28. SPI 寄存器 3/4 SPISR - SPI 状态寄存器 SPRF - SPI 接收中断标志 1 = New is received into SPIDR SPTEF - SPI 发送缓存空中断标志 MODF –主机模式错误标志 1 = SPI Data Register is Empty 1 = SPI Master was selected as Slave 微控制器开发技术

  29. SPI 寄存器 4/4 SPI Data Register(SPIDR = SPIDRH:SPIDRL) - SPI 数据寄存器 注: 用户仅当SPI发送缓冲空标志置位时才能写入该寄存器. 注: 发送数据与接收数据使用相同寄存器 微控制器开发技术

  30. 本节提要 一、SPI概述 二、SPI模块功能 三、SPI模块引脚 四、SPI模块寄存器 五、SPI模块编程范例 微控制器开发技术

  31. SPI模块编程范例 • SPI模块编程方法 • SPI初始化:先写SPI0BR,设定SPI波特率;再写控制寄存器SPI0CR1和SPI0CR2,设定时钟的极性、相位、SPI数据传输宽度、SPI工作模式、中断允许位,并使能SPI模块 • SPI收发数据:通过查询SPI0SR中的状态位或采用中断方式,读写数据寄存器,完成数据收发。 微控制器开发技术

  32. SPI模块编程范例(续1) • SPI模块编程范例 1. SPI初始化 //SPI初始化函数 void SPI_Init() { SPI0BR=0x44; //设定波特率 SPI0CR1=0x5C; //关闭SPI中断,置SPI主机模式,使能SPI模块 SPI0CR2=0x00; //数据传输宽度为8位,即一个字节 } 微控制器开发技术

  33. SPI模块编程范例(续2) 2. SPI收发数据 //SPI发送一个字节的函数 //参数:send_data为待发送的1字节数据 void SPI_send_char(unsigned char send_data) { while((SPI0SR&0x20)==0); SPI0DRL=send_data; } //SPI接收一个字节的函数 //返回:接收的1字节数据 unsigned char SPI_rev_char(void) { while((SPI0SR&0x80)==0); return SPI0DRL; } 微控制器开发技术

  34. SPI驱动数码管显示的典型应用 硬件连接: 教材P80: 1.MCU的MOSI(17)接164的A脚(1) 2.MCU的SCK(18)接164的CLK脚(8) 3.164的B(2)和/MR(9)接+5V 4.164的Q0~Q7,接数码管的a~DP 板上12、11、10、9、8、7、6、5、4、 3、 2、1 1 位、a 、 f 、2、3、b、4、g、c、DP、d、e 微控制器开发技术

  35. 74LS164原理 微控制器开发技术

  36. SPI驱动数码管显示的典型应用 • 软件: 见3-SPI练习程序 微控制器开发技术

  37. 异步串行通信(SCI) • 通信基础知识 • 异步串行通信协议RS-232标准 • SCI功能简介 • SCI寄存器 • SCI软件开发方法 • SCI应用程序示例

  38. SCI

  39. RS232 standard EIA RS-232-C 美国电子工业协会正式公布的异步串行通信标准,也是目前最常用的异步串行通信标准, 用来实现计算机与计算机之间、计算机与外设之间的数据通信 RS-232-C电平采用负逻辑,即,逻辑1:-3~-25V,逻辑0:+3~+25V (需要电平转换) RS-232-C接口标准有22根线,采用标准25芯D型插头座;PC上使用简化的9芯D型插座 多种通信应答(握手)方式: 硬件握手,自应答,XON/XOFF模式 波特率: 300bps ~ 4Mbps, 物理层有多种实现方式(铜缆,光缆,红外,无线,微波) 起始位/停止位/数据位/奇偶校验/全双工半双工模式 广泛应用: Modem,20mA电流环,RS485 个人计算机都有标准的RS232接口,驱动程序,超级终端

  40. RS232 standard

  41. RS232 standard • 简化的9芯D型接头信号定义(硬件流量控制) • DTE DCE 3 TxD out TxD Transmit Data 2 RxD in RxD Receive Data 5 GND GND 7 RTS out RTS Require To Send 8 CTS in CTS Clear To Send 6 DSR in DSR Data Set Ready 9 DCD in DCD Data Care Detected 4 DTR out DTR Data Terminal Ready

  42. RS232 standard • 简化的9芯D型接头信号定义(自应答方式) • DTE / DCE • 2 TxD out TxD (Transmit Data ) • 3 RxD in RxD (Receive Data) • 7 GND GND (Ground) • 4 RTS out RTS (Require to Send) • 5 CTS in CTS (Clear to Send) • 6 DSR in DSR (Data Terminal Ready) • 8 DCD in DCD (Data Carry Detected) • 20 DTR out DTR (Data Set Ready) Ready always, or XON/XOFF protocol, ASCII only!

  43. RS232 standard • 简化的9芯D型接头信号定义(无应答方式) • 1 protection ground • 2 RxD in RxD (Receive Data) • 3 TxD out TxD (Transmit Data ) • 5 GND GND (Ground) • 6 DSR in DSR (Data Terminal Ready) • 7 RTS out RTS (Require to Send) • 8 CTS in CTS (Clear to Send) • 9 DCD in DCD (Data Carrier Detected) • 4 DTR out DTR (Data Set Ready) No Handshake, should use XON/XOFF protocol,ASCII only

  44. RS232 standard • TTL level vs. RS232 level

  45. RS232 standard • TTL level vs. RS232 level

  46. RS232 standard • RS232标准(1962)出现的比TTL(1964)还早 • 需要接口转换芯片 MAX232 RS232 Microcontroller TTL/CMOS DB9

  47. UART • NRZ (not return zero) encoding • Several configurable parameters • Baud rate, #data bits, parity, #stop bits • Nomenclature: 9600,N81 • LSB- Least significant bit • MSB- Most significant bit Frame format 0 1 2 3 4 5 6 7 8 idle start LSB MSB Parity stop (stop) idle

  48. Start/stop 位 • 接受端需要明确数据帧的边界,即该帧从什么时候开始,什么时候结束。 • 数据位传送之前,都要发送START 位(always ‘0’) (从空闲状态开始的下降沿,是START位的开始) • 在数据位传送结束后,还要传送STOP位 (always ‘1’).

  49. 数据位识别 • 接受端在其时钟上升沿采样数据线电平,以识别数据位的高低状态。 • What is the data transmitted above?

  50. 数据位识别 TxD RxD Rx_clk Tx_clk 传输过程会引起信号的延迟,会引入外部干扰导致的噪声及毛刺

More Related