PIC16位单片机CAN(3)串口详解(232)

发布者:喜茶我要七分糖最新更新时间:2016-08-28 来源: eefocus关键字:PIC  16位单片机  串口详解 手机看文章 扫描二维码
随时随地手机看文章
---------------------------------
串口的引脚定义:
PIC16位单片机CAN(3)串口详解(232) - zmurder - 起点的博客
9芯 信号方向来自 缩写 描述 1 调制解调器 CD 载波检测 2 调制解调器 RXD 接收数据 3 PC TXD 发送数据 4 PC DTR 数据终端准备好 5 
GND 信号地 6 调制解调器 DSR 通讯设备准备好 7 PC RTS 请求发送 8 调制解调器 CTS 允许发送 9 调制解调器 RI 响铃指示器 两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。

---------------------------------
串口的电气特性:
1)RS-232串口通信最远距离是50英尺
2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps
3)RS-232C上传送的数字量采用负逻辑,且与地对称
逻辑1:-3 ~-15V   
逻辑0:+3~+15V 
逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次
所以与单片机连接时常常需要加入电平转换芯片:
PIC16位单片机CAN(3)串口详解(232) - zmurder - 起点的博客

---------------------------------
串口通信参数:
a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。
b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)。
c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
d)奇偶校验位:在串口通信中一种简单的检错方式。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。

---------------------------------
串口通信的传输格式:
串行通信中,线路空闲时,线路的TTL电平总是高,经反向RS232的电平总是低。一个数据的开始RS232线路为高电平,结束时Rs232为低电平。数据总是从低位向高位一位一位的传输。
下面的图摘自PIC数据手册:
逻辑电平:TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。注意与RS232不同。
起始位为0,先传数据低位,再传高位,最后停止位为1。
PIC16位单片机CAN(3)串口详解(232) - zmurder - 起点的博客
 

例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。 
55H=01010101B,取反后10101010B,加入一个起始位1,一个停止位0,55H的数据格式为1010101010B;
aaH=10101010B,取反后01010101B,加入一个起始位1,一个停止位0,55H的数据格式为1101010100B;
PIC16位单片机CAN(3)串口详解(232) - zmurder - 起点的博客

---------------------------------
串口通信的接收过程:
(异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。RS232是异步通信)
(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。 
(2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”,而不是干扰信号。
(3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。
(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。….,直到全部数据位都输入。
(5)检测校验位P(如果有的话)。
(6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。
(7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。
(8)当信号再次变为低时,开始进入下一幀的检测。
PIC16位单片机CAN(3)串口详解(232) - zmurder - 起点的博客

---------------------------------
单片机常用11.0592M的的晶振,这个奇怪数字是有来历的:
波特率为9600BPS每位位宽t1=1/9600s
晶振周期t2=1/11.0592/1000000S
单片机机器周期t3=12*t2
t1/t3=96
即对于9600BPS的串口,单片机对其以96倍的速率进行采样。
如果单片机晶振用的不正确,会对串口接受产生误码。
---------------------------------
RS485和RS422
RS485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS485用于多点互连时非常方便,可以省掉许多信号线。应用RS485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。

RS422总线,RS485和RS422电路原理基本相同,都是以差动方式发送和接受,不需要数字地线。差动工作是同速率条件下传输距离远的根本原因,这正是二者与RS232的根本区别,因为RS232是单端输入输出,双工工作时至少需要数字地线发送线和接受线三条线(异步传输),还可以加其它控制线完成同步等功能。RS422通过两对双绞线可以全双工工作收发互不影响,而RS485只能半双工工作,发收不能同时进行,但它只需要一对双绞线。RS422和RS485在19kpbs下能传输1200米。用新型收发器线路上可连接台设备。

关键字:PIC  16位单片机  串口详解 引用地址:PIC16位单片机CAN(3)串口详解(232)

上一篇:PIC16位单片机CAN(4)CAN发送报文详解
下一篇:PIC16位单片机CAN(2)彻底弄懂时钟

推荐阅读最新更新时间:2024-03-16 15:07

PIC16F628红外接收程序
P IC 16F628红外接收程序 ; Some notes on RC5 ; ; 14 RC5 bits: ; SSTAAAAA CC CCCC ; ; S: 2 start bits, T: 1 toggle bit, A: 5 address bits, C: 6 command bits ; ; Usually both start bits are high. Extended RC5 uses the 2nd start bit for expanding ; the 6 command bits to 7 bits. After receiving a complete 14 bit word, this bit ;
[单片机]
PIC单片机上串口测试模块
****************************************main.c********************************* #include #include uart.h #include iocfg.h uchar com_tx_buffer; void main( ) { OSCCON=0x7a;//内部晶振16MHz io_init( );//GPIO口初始化 uart_init(9600);//波特率9600 INTCON=0xe0;//允许终端 while(1) { com_tx_buffer=0x55;//发送缓存写入0x55 } } ********************
[单片机]
PIC单片机】-- 中断、定时器相关知识
00 写在前面 该系列的文章,源自于担任过PIC单片机课程的助教,主要向学弟们讲解了几节实验课的内容。在此记录上课的一些知识。 本系列文章主要介绍的内容: 实验1–介绍和基本I/O–按钮和LED(学习嵌入式的第一步就是点一个灯,就像学习编程语言的第一步都是写一个“hello world”代码) 实验2–MPLAB+PICkit 3+LCD+I/O(这次主要是介绍液晶显示屏的使用,很多时候我们系统的调试都需要用到,比如做一个测温系统,那我们就可以通过液晶显示屏,显示传感器采集的数值,然后再通过软件来做进一步的处理) 实验3–ADC(这个是模数转化实验,就是之前模数电学习那些知识的一个综合运用) 实验4–串行通信–UA
[单片机]
【<font color='red'>PIC</font>单片机】-- 中断、定时器相关知识
PIC的单片机功耗问题
最近一周一直在做pic单片机功耗问题。由于项目使用电池供电,所以功耗问题显得非常重要。根据数据手册以及网络上的资料,影响单片机功耗主要由以下几个因素: 1:所有I/O引脚保持为高阻输入高点平或低电平 2:关闭比较器和CVref(可编程偏上参考电压)、WTD、T1OSC、BOR(欠压复位)等 3:PORTB片内弱上拉 4:所有不用的模块全部关闭,在用到时再打开 5:MCLR引脚必须处于逻辑高电平 PIC单片机在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O口,周边模块和内部RAM将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入SL
[单片机]
关于PIC单片机SLEEP指令
之前一直没有真正理解sleep指令,最近在做智能水表的产品的时候,用了一款8位的单片机PIC16F690,当看到程序中的sleep指令时以为执行后cpu还会工作,导致一些认识上的错误,在网上搜索了一下,找到了一篇关于sleep的详细说明文章,现收集下来以便以后查询! 在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O 口,周边模块和内部RAM将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入SLEEP前把IO口置为高阻抗的输入状态,不用的模块也要关闭。另有些周边模块与主时钟有关,如在异步模式下的USART,将不工作。 唤醒SLEEP
[单片机]
PIC单片机对9346EEPROM程序的读写设计
由于在使用时,找了很久也没找到相关的程序,因此把自己后来编写的程序贴出来,希望能给后来者借鉴参考!;实验目的:熟悉SPI总线以及9346EEPROM的读写 ;RBO键按下时把DATA和DATA2写入到EEPROM中以EE—ADDR为地址的单元内, ;完成后,单个数码观显示“9”做为完成标志 ;RB1键按下时,读取EEPROM中以EE—ADDR为地址的单元,并送数码管显示 ;硬件要求:S3、S5、S6拨码管置ON,S1第7、8位置ON。 LIST P=16F877A, R=DEC include “P16F877A.inc” ;包含头文件 __CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_
[单片机]
<font color='red'>PIC</font>单片机对9346EEPROM程序的读写设计
PIC16F883单片机EUSART串口通信
在两个单片机之间建立串口通信。 说明:我们使用数码管显示接收到的数据,数据是对方的按键编号。 硬件连接图: 有一点至关重要,就是两个单片机要共地。发送和接收引脚在两个单片机上交叉相连。 这里采用的是异步发送和接收。 发送原理图: EUSART接收图: 时序图: 实现代码流程图: 实现代码: #include p16f883.inc __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF &
[单片机]
<font color='red'>PIC</font>16F883单片机EUSART<font color='red'>串口</font>通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved