自学内容网 自学内容网

s3c2440——UART串口通信

一、通信方式

1、并行通信:一次可收发2bit/2bit以上。通信效率高;但对SOC硬件资源占用率太高。

        串行通信:一次通信传递1bit。降低对硬件占用率;但通信速率低。

2、单工通信:只能A发送,B接收。

        半双工通信:A、B均可收发,但不能同时通信。

        全双工通信:A、B可同时收发。

eg:USB(统一串行总线)、串口均属于串行通信。

二、串口通信中

1、同步串行通信:I2C通信。

        异步串行通信:串口通信(UART)。

区别:同步俩设备间有SCK同步时钟线用来同步双方。

不通信时,SCK为高电平。

★2、数据格式

(1)起始位为0;

(2)数据位为8位。先发低位,称lsb先行;先发高位,称msb先行。UART属于lsb先行。

(3)校验位。有三种校验:奇校验(为e)、偶校验(为0)、无校验(无)。

(4)停止位为1。因为不通信时,就处于高电平。

波特率:1200,2400,4800,9600,115200.

eg:9600,n,8,1表示波特率为9600bps,无校验,有8位数据位,停止位为1。

3、主机间通信时的电器物理问题

(1)TTL

TTL(Transistor-Transistor Logic)通常指的就是芯片引脚产生的电压,这个电压值跟选择的芯片有关,在51单片机系统下是5v;在2440下是3.3v等等。5vTTL通信距离通常被限制在10~20米之间。

(2)RS232

逻辑高电平(逻辑1):在-3V到-15V之间

逻辑低电平(逻辑0):在+3V到+15V之间

收发主机间有三根线,分别是收、发和地,因此RS232是全双工的。

理论上RS232能够传输20~30米。

(3)RS485

RS485使用两根信号线(A和B)来传输数据,通过比较A和B之间的电压差来识别信息,电压范围分别为+7V到+12V和-7V到-12V。正电压表示高电平,负电压表示低电平。这种差分信号传输方式提高了抗干扰能力。RS485的传输距离可达1200米,适用于大范围的数据传输需求。由于采用的是压差,RS485在传输数据的某一时刻,两根线都要用到,所以它是半双工的。

注:①由TTL->RS232->RS485逐步发展,其都是为了使抗干扰性逐渐增强、传输距离更远。

②常用TTL到RS232转换的芯片为:MAX3232。

③常用TTL到RS485转换的芯片为:MAX485。

三、UART实现

用到:PCLK(50MHZ)、9600,n,8,1.

查表:ULCON0、UCON0(Rx中断类型:脉冲)、UTRSTAT0、UTXH0、URXH0、UBRDIV0.

波特率发生:UBRDIVn = (int)(UART时钟)/(波特率*16)-1. 结果取最接近的整数。

50*10^6/(9600*16)-1 ≈ 325.

1、modbus协议实现——收发数据

可完成多种不同的任务,modbus为应用层协议。

数据通信格式:

校验码方式:累加和,取低八位;CRC。


原文地址:https://blog.csdn.net/2301_80315592/article/details/142455844

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!