当人们晚上迷失在野外手上只有一个手电筒,此时有直升机飞过。人们用手电筒发出三短三长三短的光线。用这个国际通用的SOS求救信号,告诉飞行员来救你。人们规定的三短三长三短的光线,代表SOS就是一种通讯协议。
单片机处理通讯协议的方法其实也类似。只不过用的不是光线而是电平。比如我们完全可以模仿SOS求救信号的方法。来创造属于自己的通讯协议。
例如:我们模仿SOS ,用高电平代替亮,用低电平代替暗。10MS(毫秒)为短,20MS为长。A单片机从一个I/O输出如下的电平。可以看出单片机输出了三短三长三短的的高电平。 B单片机从一个I/O接收如下的电平。当B单片机接收到信号的后,就可以根据程序做任何事,这个信号的代表什么,可以是SOS,可以开启一些设备,可以是一切的意思。A单片机可以运用这个协议,命令B单片机做任何事情。只要我们自己编程前先确定好就行。
所以说协议本身是很随意的,只要发送和接收双方事先规定好就行了。但是如果每家公司,每个人都定一个通信协议。这样协议就太多太乱。所以规定了几种通用的协议如USART,I2C,SPI,这样通信协议就能规范了。
我们稍稍讲解下关于通信协议的几个专业术语:
串行通讯和并行通讯。
如果我们手上有8个苹果,我们想丢给另一个人。你可以一个个丢,丢完一个再丢另一个,这就是串行通讯。你可以8个一起丢,这就是并行通讯。只是对于单片机丢的不是苹果而是位(bit)。
串行通讯只用一个数据(Data)线,发送数据所以只能一个个位的发送。
并行通讯要同时传递多少个位的数据,则用多少个数据线。
全双工通讯和半双工通讯。
简单的来说:比如两个人聊天,如果A说话,B只能听,B说话,A只能听。A 和B两个人不能同时说话,只能一方发出信息,另一方接收信息。双方不能同时发出信息这就是半双工。
如果两个人聊天,两个人可以同时说话,可以同时听。双方都以同时接收和发送这就是全双工。
异步和同步。
对于单片机而言,如果在同一个时钟下,动作和步调都是一致同步的。
如果不在同一个时钟下,动作和步调是不一致的是异步的。
如果想让两个单片机,进行同步通讯,就必须工作在同一个时钟下。所以它们之间连接着时钟线。如果它们之间没有时钟线连接,则说明是异步通讯。
关键字:PIC单片机 通信协议
引用地址:
PIC单片机之通信协议
推荐阅读最新更新时间:2024-03-16 16:10
RS232串口通信协议怎么写?
协议一般要包含:起始符、、数据、校验码、结束符,5个部分的定义。 其中 起始符、结束符,不能与其他数据重码。
如只要传输字母与数字,可以看下ASCII码表,使用非数字和字母的符号做起始结束符即可,如{};数据长度码即表示此串数据包的数据长度,如果传输的数据串长度固定可省去;
校验码相当于对此串数据正确性的校验,和奇偶校验效果类似,一般是和校验,即将数据全部累加得到一个和值当校验码,接收方收到数据也做一样的运算与收到的检验码比较,相等就说明正确接收。如要发{1234567890 }
换成16进制即:7B 10 31 32 33 34 35 36 37 38 39 30 25 7D;31~30是数据,
7B,7D分别为起
[嵌入式]
PIC单片机的应用设计技巧
美国微芯公司(Microch{p Technology Inc.)开发的CM0S工艺PIC系列8位单片机(RISC微控制器),特别是采用内置第二代Flash存储器(40年存储寿命)的微控制器在快速应用方面具有独到之处。由于其易用性和高可靠性,该系列微控制器稳居8位单片机全球出货量之首。PIC系列单片机具有指令集简洁、简单易学、速度高、功能强、功耗低、价格低廉、体积小巧、适用性好及抗干扰能力强等特点,大量应用于汽车电气控制、电机控制、工业控制仪表和仪表、通信、家电、玩具、低功耗的测控应用等领域,在国内越来越受到广大设计者的欢迎,微芯公司的单片机已经成为目前单片机世界的主流产品。 PIC 8位单片机内已经包含运算器、存储器、A/D、P
[应用]
PIC单片机配置字Configuration Bits使用经验
1.PIC16F1518单片机在其存储器0x8007和0x8008地址有2个配置寄存器,用来配置整个芯片的功能。 配置寄存器跟特殊寄存器(配置外设)的区别在于,配置寄存器在程序烧录的时候一次性完成,程序中无法再修改其内容。 配置的方式主要有: (1)程序中通过特殊指令配置:在C语言程序里加入 __CONGFIG(bits);(其中bit是配置信息,config前的下划线还是两条,如:__CONFIG(WRT_OFF & VCAPEN_OFF & STVREN_ON & BORV_LO & LPBOR_OFF & LVP_OFF);注意有个分号“;” 其中WRT_OFF ,VCAPEN_OFF是在pic16F1518头
[单片机]
PIC单片机对数码管的动态扫描显示设计
#include//包含单片机内部资源预定义 __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 voiddelay();//delay函数申明 voidinit();//I/O口初始化函数申明 constcharTABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92};//定义常数0-5的数据表格 voidm ai n()//主函数 { while(1)//死循环,让数码管持续点亮 { init();//调用初始化函数 PORTD=TABLE[0];//D口输出数据表格第1个数据0 PORTA=0X3E;//点亮第1位数码管 de
[单片机]
PIC单片机中断嵌套
#INCLUDE P16F877.inc W_TEMP EQU 20H ; 实际上20H、A0H、120H和1A0H STATUS_TEMP EQU 21H ;在体0中建立保护单元 PCLATH_TEMP EQU 22H ;在体0中建立保护单元 ORG 000H GOTO A1 ORG 04H;中断入口地址 GOTO ZD01 A1 BSF STATUS,RP0 BCF STATUS,RP1;体1 MOVLW 00H;1:2TMRO比例 MOVWF OPTION_REG;分频1/2 MOVLW 0H MOVWF TRISA;设置A口为输出口 MOVL
[单片机]
PIC单片机用指针调用IO口
代码: void TEST(volatile near unsigned char* IO,unsigned char n,BOOL value) { unsigned char a; unsigned char b; a=*IO; b=0x01; b=b n; if(value) { *IO=a | b; } else { b=~b; *IO=a & b; } } PIC结构体,定义位元结构 extern volatile near unsigned char PORTB; // PORTB是一个字节(unsigned char)。由于变量是在寄存器中定义的,因此需要extern 修饰符。 volatile 修饰符告知编译
[单片机]
LCD1602控制要领(pic单片机)
PIC板使用LCD时需要将J401摘除 LCD 4脚(RS数据/命令选择端H/L)-----RB2 LCD 5脚(R/W读写选择端H/L)---------RB1 LCD 6脚(E使能读H,写L- H)----------RB0 控制要领: 如无检忙则可在每次操作之前作适当延时即可. 写命令:rs = 0;rw = 0;ep = 0- 1- 0;(用于初始化和在控制显示的位置) 写数据:rs = 1;rw = 0;ep = 0- 1- 0;(用于显示内容) 初始化: Write_COM(0x38);//双列16X2 Write_COM(0x0C);//开显示;无不显光标;光标不闪烁 Write_COM(0x06);//
[单片机]
基于PIC单片机的六挡调控电涡流缓速器的设计
电涡流缓速器是一种高效汽车制动辅助装置,它既可以使汽车在坡道行驶时,方便地实行缓速和恒速行驶,也可以在高速公路或者路况较差的情况下,及时轻松地进行缓速,因此可极大提高汽车行驶时的安全性与舒适性。 目前国外使用的缓速器有两种形式,一种是利用液体的压力来实现的,称为“液力缓速器”,液力缓速器存在着结构复杂,维护困难等诸多缺点。另一种是“电涡流缓速器”,相比液力缓速器,它结构简单,维护方便。但国外的电涡流缓速器大多采用继电器作为控制元件(如法国的TELMA等),由于继电器频繁吸合,触点寿命较低,而且制动力无法连续均匀调节。还有些产品采用大功率无触点开关作为控制元件(如德国的KLOFT等),元件的寿命虽然大大提高,但使用在国内的车辆上时,
[单片机]