当前位置: 首页 > 产品中心 > lcd显示屏-总成

ARM学习笔记15——串口通信基本原理

发表时间: 2024-01-19 作者: lcd显示屏-总成
产品详情

  串口是计算机上一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也能够适用于获取远程采集设备的数据。

  串口通信的概念格外的简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单还可以实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线米,并且任意两个设备间的长度不允许超出2米;而对于串口而言,长度可达1200米。

  典型地,串口用于ASCII码字符的传输。通信使用3根线)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配:

  a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这在某种程度上预示着串口通信在数据线Hz。通常电线。波特率可以远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

  b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

  c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不单单是表示传输的结束,并提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

  d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是不是不同步。

  RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。

  RS-422(EIA RS-422-A Standard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。

  RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。有了多个设备的能力,你能够正常的使用一个单个RS-422口建立设备网络。出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。RS-485是RS-422的超集,因此所有的RS-422设备能被RS-485控制。RS-485可以用超过4000英尺的线进行串行通信。

  RS-232通行方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。

  a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使能或者禁止用户使用两个控制字符XON和XOFF。这些字符在通信中由接收方发送,使发送方暂停。

  例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。输入buffer半满时,LabWindows发送XOFF。此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。显然,发送方一定要遵循此守则以保证传输继续。

  b,硬件握手:第二种是使用硬件线握手。和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。第一组线是RTS(Request to Send)和CTS(Clear to Send)。当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。另一组线是DTR(Data Terminal Ready)和DSR(Data Set Ready)。这些线大多数都用在Modem通信。使得串口和Modem通信他们的状态。例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。读取DSR线置高,PC机开始发送数据。一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。

  在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:

  c,XModem握手:最后讨论的握手叫做XModem文件传输协议。这个协议在Modem通信中非常通用。尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。在LabWindows中,实际的XModem应用对用户隐藏了。只要PC和别的设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。函数是XModemConfig,XModemSend和XModemReceive。

  XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。这些参数需要通信双方认定,标准的XModem有一个标准的定义:然而,能够最终靠XModemConfig函数修改,以满足具体需要。这些参数的使用方法由接收方发送的字符neg_ack确定。这通知发送方其准备接收数据。它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max发出包的数目很可能增加到XON/OFF控制字符的值,因此导致通信故障。

  引用地址:ARM学习笔记15——串口通信基础原理上一篇:ARM CPU大小端下一篇:ARM学习笔记14——C语言和汇编相互套用

  本文和另外两篇姊妹篇都是为说明如何裁剪出适合在mini2440 开发板上运行的Linux系统,以记录自己的学习成果。其中本文先介绍了嵌入式系统的软件组成部分,然后介绍编译出适合在mini2440开发板上运行的uboot的方法步骤。 说明:笔者使用的开发平台---RetHat linux系统,开发板---Friendly mini2440 在开始讲述系统移植的具体方法之前,先大致了解一下嵌入式系统的软件组成: 从上面这个图能够准确的看出,嵌入式系统的软件组成最重要的包含bootloader、内核以及根文件系统。并还有bootloader传给内核的参数列表以及没画出来的应用软件。其中bootloader在开发板一上电就会被硬

  开发板系统移植-----u-boot的编译 /

  ARM GNU常用汇编语言介绍 ARM汇编语言源程序语句,一般由指令,伪操作,宏指令和伪指令组成. ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令。 伪操作,是ARM汇编语言程序里的一些特殊的指令助记符,其作用主要是为完成汇编程序做各种准备工作, 在源程序运行汇编程序时处理,而在计算机运行期间没有有机器执行.也就是说,这些伪操作只是汇编过程中起作用, 一旦汇编结束,伪操作的使命也就随之消失. 宏指令,是一段独立的程序代码,可以插在程序中,它通过伪操作来定义。 1 宏在被使用之前必须提前定义好,宏之间可以互相调用,也可自己递归调用。 2 通过直接书写宏名来使用宏.并本具宏指令的格式输入输出参数. 3 宏定义本身

  Linux启用时,initrd能够在内存中,也能够在 Flash或其它可用的装备上;initrd文件款式为: romfs/Minix/ext2/gzip;相干的函数:drivers/block/rd.c: identify_ramdisk_image ; 加载位置: init/main.c: prepare_namespace; 必需的参数为:initrd_start 和 initrd_end; ARM如何递交initrd参数:ARM递交initrd参数能分为两种情形: 1.从表面获得的情形: arch/arm/kernel/setup.c: 从 TAG参数中获得(tags容易来说内存中一段具有定然款式的标签数据和参数,中心和L

  SPI简介 SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节约空间,提供方便,正是出于这种简单易用的特性,如今慢慢的变多的芯片集成了这种通信协议,比如AT91RM9200。 简单的说,就是SPI是一种告诉的协议,相当于IIC,只是IIC是两根线(时钟线SCL,数据地址线SDA)而SPI是四根线(SCK时钟信号,DO输出线,DI输入线,CSn片选信号),一样能挂在多个SPI高速设备。 数据传输 数据传输由CPOL,CPHA两个控制器决定,CPOL决定电平启示状态是低电平还

  板s3c2440---SPI协议 /

  μC/OS-II在ARM平台的移植是一个重要的学习过程,有助于提高对RTOS的认识与理解,来提升嵌入式工作者的理论与技术水平。μC/OS-II是一个小的实时内核,源代码公开,有详尽的解释。正是因为其内核小,才便于研究、理解和掌握。另外,参照TCP/IP协议、标准和一些公开的图书,在μC/OS-II上增加TCP/IP协议栈,蓝牙通信软件、红外通信协议也十分方便,商业经济价值得到了认可。     随着科技的发展,嵌入式应用的复杂性慢慢的升高,同时ARM体系处理器的价格越来越低,ARM平台 + 实时操作系统的架构体系的使用会愈来愈普遍。有鉴于此,本文对μC/OS-II在ARM平台下的移植进行了深入探讨。 1 操作系统μC/O

  0.引言 家庭网络化是社会信息化的重要组成部分。家庭网络系统可实现各种智能家电、安全设备等的连接和管理,向人们提供方便、灵活和高效的网络服务。目前家庭网络系统主要有两种解决方案:基于PC和基于嵌入式系统 。 在以PC作为家庭网络核心的解决方案中,PC提供家庭网络与Internet之间的连接,并经过控制外设提供各种服务。PC的优势是功能强大灵活,拥有众多软件支持,软件升级方便。但是PC并不是专门为家庭网络设计,所以在应用中存在一些局限:功耗较大;成本比较高,如果考虑24小时运行,则对硬盘、电源、主板等很多部件有更高的要求,成本进一步增加;同家庭网络的交互与控制行为被限制在键盘、鼠标与显示器附近的一个小区域内,移动性差,很不方便

  的家庭网络系统解决方案 /

  当系统运行受到外部干扰或者系统错误,程序有时会出现跑飞,导致总系统瘫痪。他会设置一段时间,当超出最近一段时间,从程序中跳出进入中断处理程序。WatchDog本质上是一种定时器,那么普通定时器拥有的特性它也应该具备,是的当它计时超时时也会引起事件的发生,只是这个事件除了能是系统中断外,他也可以是一个系统重启信号(Reset Signal)。能这么说,能发送系统重启信号的定时器我们就叫它WatchDog。看门狗定时器中断是我们不希望看到的,因此我们要想方设法避免它发生。主要的方法就是在中断发生前,重新对看门狗定时器的寄存器进行赋值,使它的定时器重新开始记时,这种方法俗称喂狗。 S3C6410看门狗定时器的功能: 作为常规时钟

  体系架构(S3C6410)---S3C6410看门狗源码实例 /

  摘要:本文简要说明了ZCP320A处理器内部集成的PCI总线接口、编程模式及工作模式,并介绍了作为主设备时如何访问外部扩展的RTL8139 PCI网卡设备。为以后的设计者提供借鉴及应用基础。 关键词:ARM922T ZCP320A PCI总线A采用了ARM公司的ARM922T核,ARM922T是ARM9TDMI通用处理器家族中的一员采用哈佛结构内部使用5级流水线位的Thumb指令系统包括两个相互独立的8KB 的数据和指令高速缓存,高速缓存行的长度是8个字。ARM922T 实现增强型ARM结构v4MMU以提供对指令和数据地址的转换和访问许可检测。ARM922T 支持

  Cortex 微控制器打造穿戴式产品与周边

  使用STM32 Nucleo撬开针对物联网的ARM mbed IDE之门

  直播回放: 借助Sitara™ AM263x MCU 创造电气化的未来

  【电路】采用ARM Cortex-M3的12位、4-20mA环路供电型热电偶测量系统

  【电路】采用ARM Cortex-M3的12位、4-20mA环路供电型热电偶测量系统_温度传感器电路

  【电路】利用Arm安全架构提升防护性能的STM32H7 MCU,你知道吗?

  【电路】ARM9内核μC/OS-II系统实现SD卡文件系统电子电路设计图

  有奖直播 是德科技 InfiniiMax4.0系列高带宽示波器探头新品发布

  MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!跟帖赢好礼~

  ADI世健工业嘉年华——深度体验:ADI伺服电机控制方案

  解锁【W5500-EVB-Pico】,探秘以太网底层,得捷电子Follow me第4期来袭!

  【下载】LAT1317 STM32CubeProgrammer和STM32CubeIDE协同调试的方法

  【下载】LAT1334 基于MCSDK5.4.8电机库修改两电阻采样方法

  【直播】轻松使用STM32MP13x如MCU般在Cortex A 核上裸跑应用程序

  【新品】STM32H5-Arm® Cortex®-M33 内核,主频高达250MHz,提升性能与信息安全性

  【新品】STM32MP13X-支持Linux、RTOS和Bare Metal应用,新一代通用工业级MPU

  【新品】Arm® Cortex®-M33处理器内核,运行频率160 MHz,基于Armv8-M架构并带有TrustZone®

  【Matter】康普和意法半导体强强联手,让物联网设备Matter证书管理既安全又简便

  【方案】STM32WLE5 x 利尔达LoRa模组助力亚残会开幕式惊艳秀

  【新品】意法半导体发布远距离无线微控制器,提高智能计量、智能建筑和工业监控的连接能效

  与机构预测不同的是,近几个月,MCU新品频发,而它们的目标则也更加明确——发力AI和汽车。...

  【认识STM32】F1 代表了基础型,基于Cortex-M3 内核,主频为72MHZ,F4 代表了高性能,基于 Cortex-M4 内核,主频 180M。【GPIO外设】 ...

  一、什么是中断首先介绍一下什么是中断。在实际开发过程中,中断是很有必要的。比如需要针对某种特殊情况做快速响应,单纯的使用一个whil ...

  以STM32F072CB做的测试官方参考应用文档:AN4759RTC日历时钟配置通过两个预分频得到1hz的时钟用来更新日历。异步预分频:PREDIV_A,7-bit( ...

  1 硬件复位硬件复位电路如下图,直接将RESET引脚拉低即可,如下:2 软件复位软件复位库函数:NVIC_SystemReset();STM32F1XX系列中,复 ...

  PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程词云: