


TCON: timer/counter control register ,定时器/计数器 控制寄存器,,定时器的启停开关+溢出状态反馈
TR0 : 开启timer0
TF0 :定时器0溢出标志,计数溢出硬件的时候,自动置为1,,开中断则响应后硬件清0
串行通讯: 通过一条数据线逐位传输
并行通讯: 多条数据线同时传输

串并转换,,,

有些传输的快一些,有些传输的慢一些,,,数据就会混淆
UART : universal asynchronous receiver transmitter
通用异步收发传输器
真正跑在网线,光纤,基站上的物理层,,全部都是串行传输,一位一位发二进制比特,从来不用并行
距离一远,多跟线时序不同步,,采样直接翻车
电脑内部主板、芯片之间:近距离,可以用并行;
单工通讯: 只允许数据在一个方向上传输,,电视广播
双工通讯: 允许数据在两个方向上传输
半双工通信: 两个方向不能同时进行
全双工通讯: 允许数据同时在两个方向上传输
- 同步通讯
- 异步通讯
解析的方式有无数种,,
-
同步方案 : 发送放和接收方 要共用 一个 时钟线,,,
几乎不可能,,硬件成本上升,,多了一根线,就多一分干扰,,不太现实,,时钟频率不一样是一件很正常的事情
-
统一发送方的发送频率,,,接收方的接收频率,,, 发送方和接收方协商一致就可以
UART : universal asynchronous receiver transmitter
异步的,全双工的串行通信接口

数据格式:在UART 中,,数据是 逐帧 frame 发送的,,, 每个数据帧,,包含 起始位,,数据位(5-9位) 校验位(校验你当前的数据位传输的数据是否正确),,停止位(用来标识这个数据已经传输完成了)
- 空闲状态 : 没有数据传输的时候,保持高电平
- 起始位: 起始位一定是低电平,,表示要发数据
- 数据位: 长度5-9位 ,,
- 校验位: 校验当前帧传输的数据是否正确
- 奇校验 odd parity : 数据位中的1的数目是偶数,,,则校验位为1,,如果1的数目是奇数,,校验位为0,,,
保证数据位+校验位中1的总个数为奇数 - 偶校验 : even parity : 数据位中1的数目+校验位 ===》 偶数
- 奇校验 odd parity : 数据位中的1的数目是偶数,,,则校验位为1,,如果1的数目是奇数,,校验位为0,,,
校验位可选
- 停止位 : 数据帧发送结束之后,有一个停止位,,通常是1位或者2位
异步约定,,,
波特率: baud rate : 表示数据的传输速率,,发送方和接收方必须约定好这个速率,,,才能正确的接收
比特率: 单位时间内,只能传一个bit,,1秒钟只传1位,,1bit每秒

比特率: 每秒传输的位(bit)数
波特率: 一秒钟传递多少信号,,,每秒传输的符号(symbol)数,,,
串口通信中,,只有0和1,,,一个符号用1位表示,,所以波特率和比特率是等价的
发送方和接收方,,需要明确数据的位数,,
校验位: 需要明确校验算法是哪个
停止位: 停止位可以是一位还是两位,,,
UART寄存器 :
Rx
Tx

8位UART : 数据位是8位,,,
波特率可变: 波特率可以协商
溢出率

溢出率可变 : 时钟有初始值,可以通过设置时钟初始值寄存器,来表示一个时间周期,传输多少数据,,,波特率可变
系统工作时钟频率,,这个时间周期是确定的
SMOD: 要么是0 ,要么是1


SCON : serial control : 串口控制寄存器


SBUF : 缓冲器
TX Control : 发送控制器,,, 一位一位的把数据,,将数据发送出去
write to SBUF : 控制消息发送的开关
shift : 位移
timer 1 overFlow : 是否分频,,,smod为2,,2分频
tx clock : 发送控制器时钟
TI : transmit interrupt : 中断标志位,,,会产生一个串口中断 : serial port intterupt
TI需要自己清零
RxD : 接收消息
1-To-0 transition detector : 10跳变检测器
接收到一位,,就进行移位操作,,交给Sbuf,,,,,



溢出率 :一秒钟溢出多少次,,就是溢出率,,,,,
SMOD : 51单片机中控制串口波特率是否加倍的关键位,,,baud rate doubler bit

溢出率:
每次溢出前,,定时器需要计数的次数 = 256 - TH1
每次计数的时间 1 / SYSclk ... 12T模式下就是 12/SYSclk
溢出一次的总时间(256-TH1)* (12 / SYSclk) ,
溢出率: 每秒溢出多少次,,, 也就是溢出周期的倒数 SYSclk /( (256-TH1)*12)
波特率 : 每秒传输的 码元(信号单元个数),,单位是波特 Baud
信号,,在通信术语中叫码元,,他是通信中最小的,离散的信号单位
波特率: 每秒传递多少个码元,, 只看信号的个数,不管每个信号带了多少信息
比特率: bit per second : 每秒传多少个比特bit,看的是信息的总量
比特率 = 波特率 * 每个码元携带的比特数
-
SMOD = 0 : 要攒32个定时器溢出脉冲,,--》 才产生一个位节拍(1个码元),才生成1个串口码元
-
SMOD = 1 : 收集16个定时器溢出脉冲 ---》才产生一个位节拍(1个码元)
SYSclk /( (256-TH1)*12)/ 16
溢出率 : 每秒溢出多少次
波特率: 每16次溢出,传输一个码元
1s中有多少个时间周期 : (SYSclk/12)
溢出率: (SYSclk/12) / (256-TH1) ===> SYSclk / ((256-TH1)*12)
波特率 :

单位时间溢出了多少次,,,,
UART : universal asynchronous receiver transmitter : 通用异步收发器
两个设备,,都具备UART收发器,,就可以进行通讯
电脑端,可以通过USB转向口,,,

VGA接口 : 3排15针,,传输视频的,,
USB
电瓶协议
串口 : 和其他的进行通讯,,,
蓝牙串口
TXD : transmit exchange data
RXD : receive exchange data
电瓶标准不一样,,,需要电平转换芯片
定义一种协议,,传输中,人为规定的电压和数据的对应关系
- TTL电平 : 5V为1,,0V为0
- RS232电平

TTl ,,RS232 最多十多米,,长了数据会错误率很高
RS485 : 传输1000米
数据流控制 : 流控
如果设备1发送特别快


半双工: 必须分时复用一根数据线,,只有一根线,,发送和接收都是同一根线
单工: 只能有一方发送到另一方,,不能反向传输 : 遥控器
异步:
同步:



serial control , SCON :
PCON : power control ,