A. 汇编语言实现两台单片机并行通信
通信 是 并行的,不需要协议啥的,简单收发就行。
这就太简单了。
如果是单工的,用一个 8 位的并行口,互连即可。
比如甲机 P2 连接到乙机的 P1。
甲机的 P1 接上八个拨动开关,乙机的 P2 接上八个 LED。
两台单片机,都是 P1 输入、P2 输出。程序是相同的,如下:
ORG 0000H
MOV P2, P1
SJMP 0000H
END
这就实现了《并行的、简单收发》。
B. 单片机通信有三种,其中应用在对讲机是采用
首先弄懂串行通信和并行通信以及串口通信和并口通信的概念。
串行通行:它是一个概念,它是指数据一位一位地顺序传送,其特点就是通信线路
简单,只要一对传输线就可实现双向通信,适用于远距离通信,但传输速度慢。它
包括普通的串口通信,I2C,SPI,UART...
串口通信:是一种实际通信方式,但是我们可以几乎看成一样.
串行接口:简称串口,或串行通信接口,或串行通讯接口(通常指com口)。
并行通信:如果一组数据的各数据位在多条线上同时被传输,那么就是并行通信。
并口接口:就是一种接口,各数据位同时被传输,传输速度快,效率高,一边可用于MCU。
串行通信又可分为单工,半双工和全双工
单工:信息只能单向传送。
半双工:信息能双向传送但不能同时。
全双工:信息能同时双向传送。
串行通信还可分为同步通信和异步通信
同步通信(两根线):是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,
在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,
因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,
信息传输的双方用同一个时钟信号确定传输过程中每1位的位置
异步通信(一根信号线,没有时钟线):是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间
间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,
因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够
正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
同步通信与异步通信区别:
1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时
不要求接收端时钟和发送端时钟同步,发送端发送 完一个字节后,可经过任意长的时间间隔再发送下一个字节。
2.同步通信效率高;异步通信效率较低。
3.同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
4.同步通信可用于点对多点;异步通信只适用于点对点。
单片机中的SPI、UART、I2C
1、SPI
SPI允许单片机和外围设备或者单片机之间高速同步数据传输,SPI可以有主机和从机模式之选,通信的主从机之间通过移位寄存器同时交换数据。目前自己用的以主机模式居多。SPI需要四线:SS,MISO,MOSI,SCK。
通信过程:在设置好SPI的工作模式:包括SCK频率(数据传输速率),工作速度,主从模式,以及数据接收发送对应的时钟极性。在主模式下,将SS拉低表示通信的开始,然后通过向SPI数据寄存器中写入一字节的数据后自动启动时钟SCK开始进行一次通信,通信完成后会产生相应的中断标志,标志一个字节数据的传送完成。通信完成后将SS脚拉高,表示通信过程已经结束。
注意SS引脚的设置:当设置为从机模式时,SS引脚应设置为输入,拉低的时候SPI才能起作用,拉高的话是消极的SPI模式;在主机模式下,SS引脚可以设置,一般应设置为输出,如果设置为输入的话应保持为高,否则将不能进行正常的主机模式操作。
2、USART
USART的操作比较简单,主要是设置波特率,数据格式,以及中断允许位等,值得至于的是其USART IN SPI MODE,在SPI模式下的USART的操作跟SPI操作差不多,主要是Clock的设置,然后发送数据还是通过USART的中断进行
3、I2C
I2C接口是简单强大的通信接口,只需要两根双向总线(时钟和数据线),SCL和SDA,即可实现一个主机和最多128个从机进行通信。模拟I2C接口的过程:启动I2C,一般是在SCL为高时将SDA拉低启动数据发送,SDA只有在SCL为低时才能拉高拉低有效,在SCL为高时拉高拉低SDA只是用于停止启动I2C通信
I2C总线是 内部总线 ,用来连接内部系统内的芯片。
串口通信是用来和系统外部的设别通信的。比如设备和设备之间通信。
SPI,UAR,I2C都是串行通信方式,并行通信方式一般用的少,因为只适合
短距离,一般用于MCU比较多,因为MCU它对数据的传输速度有要求,而且
与塔相连的芯片一般会比较近。
MCU 他的属性要比CPU(这里指单片机,其他地方应该也是) 强,它包括CPU的性能,
且还有CPU没有的性能。
C. 怎样实现两片单片机之间的并行通信
1.直接使用一个8位口就可以实现。
2.使用8位口以及一个中断和使能端,每个单片机使用10个端口
3.使用8位口以及一个时钟输出和使能端,每个单片机使用10个端口
你也可以参照一些ad/da的使用。
D. 单片机的几种传输方式的总结
学习了51单片机以及STM32后总结下单片机与外设或者上位机通讯的几种传输方式
串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)
串行通信:指数据一位一位顺序传送
串行接口:简称串口(COM口)
并行通信:一组数据的各数据位在多线上同时被传输
并行接口:一种接口,各数据位同时被传输,传输速度快,效率高,一般用于MCU
串行通信分为:
单工:数据单项传送
半双工:数据能双向传送但不能同时
全双工:数据能同时双向传送
通用的、及支持同步也支持异步的接收、发送“模块”,在芯片内部,与SPI、I2C一起构成单片机的总线“枝干”,对于串口,串口通信指串口按位(bit)发送和接收字节,尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
串行通信技术标准EIA-232/485也就是以前所称的RS-232/485。
232是PC机与通信工业中应用最广泛的一种串行接口,RS232单端通信,传输距离可达15米,最高速率20Kbps。
RS485传输速率为10Mbps,最大传输距离1219米,,采用二线制时可实现真正的多点双向通信,而采
用四线连接时只能实现点对多点通信,无论四线还是二线连接方式总线上可接多达 32 个设备。
串行通信传输速率用于说明传输的快慢。在串行通信中,数据是按位进
行传送的,因此传输速率用每秒钟传送格式位的数目来表示,称之波特率
(band rate)。每秒传送一个格式位就是 1 波特。常用的波特率有:4800、
9600、19200、115200 波特。
串口三个脚:TX、RX、GND
IIC总线是一种两线式串行总线,支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线,一个主控能够控制信号的传输和时钟频率,当然在任何时间点上只能有一个主控。IIC总线是由数据线SDA和时钟SCl构成的串行总线,可发送和接收数据,在CPU与被控IC之间,IC与IC之间进行双向传送,最高传送速率100Kbps,各种被控制电路均并联在这条总线上,每个设备模块都有唯一的地址,IIC总线上的每一个设备模块既是主控器或被控器,又是发送器或接收器,这取决于你要实现的功能是怎样的。
CPU发出的控制信号分为地址码和控制量两部分
IIC总线传输过程中有三种信号:起始信号,终止信号,应答信号。
起始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据;
终止信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据;
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出
特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,
等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情
况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单
元出现故障。
SPI允许单片机和外围设备或者单片机之间高速同步数据传输,SPI可以有主机和从机模式之选,通信的主从机之间通过移位寄存器同时交换数据。目前自己用的以主机模式居多。SPI需要四线:SS,MISO,MOSI,SCK。
通信过程:在设置好SPI的工作模式:包括SCK频率(数据传输速率),工作速度,主从模式,以及数据接收发送对应的时钟极性。在主模式下,将SS拉低表示通信的开始,然后通过向SPI数据寄存器中写入一字节的数据后自动启动时钟SCK开始进行一次通信,通信完成后会产生相应的中断标志,标志一个字节数据的传送完成。通信完成后将SS脚拉高,表示通信过程已经结束。
注意SS引脚的设置:当设置为从机模式时,SS引脚应设置为输入,拉低的时候SPI才能起作用,拉高的话是消极的SPI模式;在主机模式下,SS引脚可以设置,一般应设置为输出,如果设置为输入的话应保持为高,否则将不能进行正常的主机模式操作。
单片机通讯方式
E. 单片机之间如何实现通信
两个单片机之间串口通信,如果是用proteus仿真,最简单了,两个单片机的rxd,txd交叉连接就行了。要是实物最好用rs232连接通信,距离可以达到几十米。再远点距离,用rs485连接通信。总之,方法很多的,也很灵活的。
F. 单片机串行通讯与并行通讯区别
串行通讯是将一组数据按照字节,一位一位的进行传输,并行通讯是按照通讯口的宽度(8b/16b)一次性传输8/16位进行传输。
通过上面描述应该能发现,串行通讯与并行通讯相比速度慢一些,但是节省端口。
G. 怎样实现两片单片机之间的并行通信
实际应用是不会这么做的,主要是浪费资源,包括硬件软件的。一般都用串口通讯。
要实现并行通信也是可以的,可以给你一些方法,
硬件连接
px
并口(8个
io口)+
intx
外部中断+
发送请求(2个io口),
发送端:
把要发送
的数据
写入
并口,同时写入
发送请求(如低电平有效
加一些延时后置高电平)
接收端:
产生
接收
外部中断,把px
接收并口
写入0xff
,
并读取
数据,也可以发送
返回数据
与发送端相同。
H. 单片机不同串口同时工作有什么好处
传输线少,长距离传送时成本低,每个串口独立工作,不定时和我的板子通信,可以提高单片机的工作效率。
单片机的数据通信有两种方式:并行通信和串行通信.并行通信指数据字节的各位同时发送或接收;而串行通信是数据字长距离传输数据节一位一位按顺序发送或接收.并行通信传输线多,适用于短距离,快速度的通信;而串行通信仅需单线传输信息,适用于长距离传输数据,由于每次传送一位,所以传输速度比较慢.串行通信又分异步和同步两种方式,其中异步串行通信是最常用的方式。异步通信传输的数据格式一般由1个起始位、7 个或8 个数据位、1 到2 个停止位和一个校验位组成。它用一个起始位表示字符的开始,用停止位表示字符的结束。
在异步通讯中,通信双方采用独立的时钟,起始位触发双方同步时钟。在异步通信中CPU 与外设之间必须有几项约定,即每一帧位数,字符格式和波特率。字符格式的规定是双方能够在对同一种0 和1 的数据串理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII 标准。