导航:首页 > 电器电路 > 串口通讯电路

串口通讯电路

发布时间:2022-08-05 02:04:44

❶ 设计一个用8250实现串口通信

数据接收存储技术革新是信号采集处理领域内的一个重要课题。利用这种技术,可以把信号的实时采集和精确处理在时间上分为两个阶段,有利于获得令人更满意的处理结果。在无线数传接收设备中应用数据接收存储方法时,除了要满足数据传输速率和差错控制方面的要求外,还需要考虑如何使设备易于携带、接口简单、使用方便。
传统外设接口技术不但数据传输速率较低,独占中断、I/O地址、DMA通道等计算机系统关键资源,容易造成资源冲突问题,而且使用时繁杂的安装配置手续也给终端用户带来了诸多不便。近年来,USB接口技术迅速发展,新型计算机纷纷对其提供支持。USB2.0是USB技术发展的最新成果,利用USB2.0接口技术开发计算机外设,不但可以借用其差错控制机制[1][6]减轻开发人员的负担、获得高速数据传输能力(480Mb/s),而且可以实现便捷的机箱外即插即用特性,方便终端用户的使用。
1 无线数传接设备总体构成
无线数传接收设备是某靶场测量系统的一个重要组成部分。如图1所示,该设备由遥测接收机利用天线接收经过调制的无线电波信号,解调后形成传输速率为4Mb/s的RS-422电平差分串行数据流。以帧同步字打头的有效数据帧周期性地出现在这些串行数据中。数据转存系统从中提取出有效的数据帧,并在帧同步字后插入利用GPS接收机生成的本地时间信息,用于记录该帧数据被接收到的时间,然后送给主机硬件保存。
在无线数传接收设备中,数据转存系统是实现数据接收存储的关键子系统。下面将详细介绍该系统的硬件实现及工作过程。

2 数据转存系统基本构成及硬件实现
数据转存系统主要由FPGA模块、DSP模块、USB2.0接口芯片构成,各个模块之间的相互关系如图2所示示。图中,4Mb/s的串行数据输入信号SDI已由RS-422差分电平转换为CMOS电平。为突出重点,不太重要的信号连线未在图中绘出。下面分别介绍这几个模块的主要功能。
2.1 FPGA模块实现及春功能
FPGA模块在Altera公司ACEX系列的EP1K30TI144-2芯片中实现。其中主要的功能子模块有:位同步逻辑、帧同步逻辑、授时时钟和译码逻辑。位同步逻辑主要由数字锁相环构成,用于从串行数据输入信号SDI中恢复出位时钟信号。帧同步逻辑从位同步逻辑的输出信号提取帧同步脉冲。两者为DSP利用其同步串行口接收串行数据作好准备。这样,利用一对差分信号线就可以接收同步串行数据,简化了印制电路板的外部接口。授时时钟在DSP和GSP接收机的协助下生成精度为0.1ms的授时信息。译码逻辑用于实现系统互联。
2.2 DSP模块实现及其功能
DSP模块是数据转存系统的主控模块,在T1公司16位定点DSP芯片TMS320F206[4]中实现。在DSP的外部数据空间还配置了32KX16的高速SRAM,可以缓存80余帧数据,用于提高系统的差错控制能力。DSP利用同步串行口接收FPGA送来的同步串行数据,利用异步串口接收GPS接收机送来时间信息(用于初始化FPGA授时时钟),利用外部总线接口访问FPGA授时时钟、外部SRAM、ISP1581的片内寄存器。可以看出DSP模块主要用于完成数据帧的接收、重组以及转存调度等任务。

ISP1581芯片是PHILIPS公司推出的高速USB2.0设备控制器,实现了USB2.0/1.1物理层、协议层,完全符合USB2.0规范,即支持高速(480Mb/s)操作,又支持全速(12Mb/s)操作。ISP1581没有内嵌微处理器,但对微处理器操作了灵活的接口。在上电时,通过配置BUS——CONF、DAO、MODE1、MODE0、DA1引脚电平可以适应绝大多数的微处理器接口类型。例如,通过BUS_CONF/DA0引脚,总线配置可以选择普通处理器模块(Generic Phocessor mode)中分割总线模式(Split Bus Mode);在普通处理器模式下,通过MODE0/DA1引脚可以选择读写选通为8051风格或者Motorola风格。
在数据转存系统中,ISP1581用于处理主机的高速数据传输。它工作在普通处理器接口模式下,采用8051风格的读写选通信号,由DSP芯片TMS320F206控制。两者在选定工作方式下的信号连线如图3所示,图中未画出的信号引脚可以悬空,供电引脚的连接方式在参考资料[2]第46页有简明描述。在FPGA译码逻辑的作用下,ISP1581的片内寄存器被映射在DSP的片外数据空间中。DSP通过8位地址线选择要访问的寄存器,在读写选通信号的控制下,利用16位数据线与选定的寄存器交换数据。在访问ISP1581单字节寄存器时,数据总线高字节内容无关紧要。ISP1581通过中断引脚INT向DSP报告发生的总线事件,利用D+、D-引脚完成与主机的数据交换。
3 数据转存系统的工作过程
系统加电后,当FPGA配置过程结束时,如果有串行数据输入,位同步逻辑和帧同步逻辑便启动同步过程。同时,DSP片内FLASH中复位中断服务程序c_int0()[4]被立即执行,在建立好C语言的工作环境下,它会调用主函数main()。在main()中,需要安排好一系列有先后顺序的初始化工作。其中,ISP1581的初始化过程比较复杂,需要考虑设备采用的供电方式(这里为自供电[6]方式)、插接主机和系统上电的先后次序,并需要与USB总线枚举[1][6]过程相结合。
在FPGA中的位同步逻辑和帧同步逻辑均进入同步状态,且DSP主控模块配合主机完成初始化任务后,即可启动数据的传输过程。下面介绍一下ISP1581的初始化过程及DSP控制的数据帧的接收机转存流程。
3.1 ISP1581的初始化
在初始化过程中,首先需要设置影响ISP1581自身工作方式的一些寄存器,然后与主机端USB系统配合进行,应答来自主机端的设备请求。当数据转存系统板作为USB 2.0设备通过连接器连到主机USB根集线器上的一个端口时,主机便可检测到这一连接,接着给该端口加电,检测设备并激活该端口,向USB设备发送复位信号。设备收到这一复位信号后,即进入缺省状态,此后就能够通过缺省通信通道响应主机端送来的设备请求。主机通过描述符请求(GET_DESCRIPTOR)获得设备端的详细信息,通过设置地址请求(SET_ADDRESS)设置设备地址,通过设置配置请求(SET_CONFIGURATION)选定合适的设备配置。在设备成功响应了这些设备请求之后,就可以与主机通信了。

在响应主机请求的过程中,DSP需要配置ISP1581的端点以实现不同类型的传输通道。根据数据传输速率的要求,除了缺省的控制通道外,系统中实现了一个批传输(bulk)[1]类型的输入通道。这样,ISP1581就可以像FIFO一样方便地从数据转存系统向主机传输数据,而且具有差错控制能力,简化了设备端软件设计的复杂性。
3.2 数据帧的接收转存过程
系统正常工作时,需要与主机端程序相互配合。主要端需要开发者实现的程序包括设备驱动程序和应用程序。在Windows 2000操作系统下,USB设备驱动程序为WDM模型的驱动程序,开发环境DriverStudio为WDM型驱动程序提供了框架结构,使得驱动开发变得非常容易(参见参考文献[5]第八、九、十章)。驱动程序接收应用程序的请求,利用USB总线驱动程序(US-BD)和主机控制器驱动程序(HCD)通过主机控制器安排USB总线事务,设备端则根据这些事务调度相应的数据帧的传输。关于主机端口如何安排总线事务可以查阅参考文献[1]。以下着重介绍设备端数据的调度过程。
数据帧的接收转存过程主要由DSP负责,DSP在外部SRAM中建立了一个数据帧的队列,如图4所示。系统主要工作在中断驱动模式下,与同步串行口相关的中断服务程序负责建立队列的尾部,对应于ISP1581中断引脚INT的中断服务程序负责建立队列的头部。
当以帧同步字打头的一帧数据以串行位流的形式到来时,FPGA产生的帧同步脉冲可以直接启动DSP同步串行口接收数据,该同步脉冲同时以中断方式通知DSP为一帧数据的接收做好准备。DSP接到通知后,首先检查外部SRAM中是否有足够的空间容纳一帧数据。如果没有空间,则丢弃当前数据帧(根据设计,这种情况是很少见的);如果有空间,则为当前数据帧保留足够的空间。接着在帧起始位置填写帧步字,读取授时时钟的当前值并填写在帧同步字后。这样,一个新的数据帧(图4中数据帧F_N)就建立了,但是并没有加入到队列中,而是要等待来自同步串行口的后继数据嵌入该帧中后再加入到队列中。
同步串行口的接收缓冲区在接收到若干字(由初始化时的设置决定)后,会向DSP提出中断请求。在中断服务程序中,DSP读取接收缓冲区中的内容,并将其填入上述新开辟的帧F_N中。在一帧数据接收完毕后,就将该帧添加到队列的尾部,表示该帧数据已经准备好(图4中数据帧F_R),可以通过ISP1581送给主机硬件保存。

DSP在查询到队列中有已经准备好的数据帧存在时,就设置ISP1581的端点索引寄存器(Endpoint Index Register)使其指向初始化时配置的批传输输入端点,然后将队列首帧数据通过ISP1581的数据端口寄存器(Data Port Register)填写在端点缓冲区中。在端点缓冲区被填满后,它就自动生效。在不能填满端点缓冲区的情况下,可以通过设置控制功能寄存器(Control Function Register)的VENDP位[2]强制该端点缓冲区生效。端点缓冲区生效后,在USB总线上下一IN令牌到来时,该端点缓冲区中的数据就通过USB总线传输到主机中。主机成功接收到数据后,会给ISP1581以ACK应答。能够通过INT引脚报告给DSP,DSP就可以继续往端点中填写该帧其余数据。
在队列首帧数据被成功转移到主机后,DSP就丢弃首帧数据。如果队列在还有数据帧,则将次首帧作为首帧,继续前述传输过程;如果没有要传输的数据帧,则为队列首帧指针Head_Ptr赋空值(NULL),等待新的数据帧的到来。
USB2.0是计算机外设接口技术发展的最新成功,具有广阔的应用前景。本文介绍了PHILIPS公司USB2.0接口芯片ISP1581在无线数据接收设备中的应用。高性能、便携化的无线数据传接收设备。其在靶场实弹试验中受到了用户的好评。

PC机的RS-232C串行口是使用最多的接口之一。因此,4串口、8串口等以增加串口数量为目的的ISA总线卡产品大量问世。一般串口应用只是使用了RXD和TXD两条传输线和地线所构成的串口的最基本的应用条件,而本文介绍一个利用PC机的RS-232串口加上若干电路来实现多串口需求的接口电路。
1.PC机串口的RTS和DTR及扩展电路
RTS和DTR是PC机中8250芯片的MODEM控制寄存器的两个输出引角D1和D0位,口地址为COM1的是3FCH,口地址为COM2的是2FCH。我们可以利用对MODEM控制寄存器3FCH或2FCH的写操作对其进行控制。从而利用该操作和扩展电路实现对TXD和RXD进行多线扩展,图1是其扩展电路。
在图1所示的PC机串口扩展电路中,74LS161是二进制计数器,1脚是清0端,2脚是计数端,计数脉冲为负脉冲信号,4051是八选一双向数字/模拟电子开关电路,其中一片用于正向输出,一片用于反向输出。该扩展电路工作原理是通过控制PC机串口的DTR输出的高低电平来形成74LS161的P2脚计数端的负脉冲信号,使161的输出端P14(QA)、P13(QB)、P12(QC)、P11(QD)脚依次在0000到1111十六个状态中变化,本电路仅使用了QA、QB、QC三个输出来形成对4051的ABC控制,最终使得4051(1)的输入端TXD依次通过与TX1~TX8导通而得到输出信号,4051(2)的输出端RXD与RX1~RX8依次导通形成输入信号。由于RXD和TXD的导通是一一对应的,因此串口通信就可以依次通过与多达8个带有三线基本串口的外部设备进行通信传输以实现数据传送。PC机端的电平转换电路是将RS232电平转换为TTL电平,外设端的电平转换电路是将TTL电平转换为RS232电平。由于这种转换有许多电路可以实现,因而,这里不再介绍。
2.电路使用程序
对PC机串口COM1的编程如下:
……
… ;对COM1口的波特率等设置;
MOV DX,3FCH
MOV AL,XXXXXX01B
OUT DX,AL;D1生成RTS负脉冲,对74LS161输出端清0
MOV AL,XXXXXX11B;
OUT DX,AL ;4051的RX1和TX1导通
CALL COM ;调用通信子程序,与第一个外部设备通信;
MOV CX,7 ;设置循环计数器;
NEXT:MOV DX ,3FCH
MOV AL,XXXXXX10B
OUT DX ,AL ;D0位生成DTR的负脉冲,形成161的P2脚计数脉冲
MOV AL,XXXXXX11B
OUT DX,AL ;RX2和TX2导通
CALL COM ;调用通信子程序,与第二个外部设备通信
LOOP NEXT ;循环与另外6个外部设备通信

… ;通信子程序略
3.使用说明
由于该扩展的多路接口在通信时共用一个子程序,因此在与某一路导通时,系统只能与这一路的外部设备进行通信联络。
如果工作现场需要立即和某一路通信,则需要对3FCH的D1位执行两个写操作并在RTS脚形成负脉冲,以对7416I清0后,再连接执行若干次对DTR的两次写操作。例如想对第4路外设通信,则需要执行完成对74LS161清0后,再连续三次对3FCH的D0位进行两个写操作以形成DTR脚的负脉冲,然后即可调用通信子程序。
如需使用PC机的COM2串口,只需将程序中的3F8H~3FDH全部换成2F8H~2FDH即可。
如果使用十六选一双向数字/模拟电子开关电路,可将74LS161的QA、QB、QC、QD四个输出端接至电子开关的四个控制端A、B、C、D,这样就可以达到一个PC机的RS232口与16个带有串口的外设的数据通信。

❷ 51单片机串口通讯

51单片机串口通信
来源:维库 作者:
关键字:51单片机 串口通信
这节我们主要讲单片机上串口的工作原理和如何通过程序来对串口进行设置,以及根据所给出的实例实现与PC 机通信。
一、原理简介
51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。
与之前一样,首先我们来了解单片机串口相关的寄存器。
SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。
串行口控制寄存器SCON(见表1) 。

表1 SCON寄存器
表中各位(从左至右为从高位到低位)含义如下。
SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。

表2 串行口工作方式控制位
其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。
SM2 :多机通信控制位。 该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)。接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。
REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。
TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。在多机通信中它代表传输的地址或数据,TB8=0 为数据,TB8=1 时为地址。
RB8 :在方式2、3 中,RB8 是接收机接收到的第9 位数据,该数据正好来自发送机的TB8,从而识别接收到的数据特征。
TI :串行口发送中断请求标志。当CPU 发送完一串行数据后,此时SBUF 寄存器为空,硬件使TI 置1,请求中断。CPU 响应中断后,由软件对TI 清零。
RI :串行口接收中断请求标志。当串行口接收完一帧串行数据时,此时SBUF 寄存器为满,硬件使RI 置1,请求中断。CPU 响应中断后,用软件对RI 清零。
电源控制寄存器PCON(见表3) 。

表3 PCON寄存器

表中各位(从左至右为从高位到低位)含义如下。
SMOD :波特率加倍位。SMOD=1,当串行口工作于方式1、2、3 时,波特率加倍。SMOD=0,波特率不变。
GF1、GF0 :通用标志位。
PD(PCON.1) :掉电方式位。当PD=1 时,进入掉电方式。
IDL(PCON.0) :待机方式位。当IDL=1 时,进入待机方式。
另外与串行口相关的寄存器有前面文章叙述的定时器相关寄存器和中断寄存器。定时器寄存器用来设定波特率。中断允许寄存器IE 中的ES 位也用来作为串行I/O 中断允许位。当ES = 1,允许 串行I/O 中断;当ES = 0,禁止串行I/O 中断。中断优先级寄存器IP的PS 位则用作串行I/O 中断优先级控制位。当PS=1,设定为高优先级;当PS =0,设定为低优先级。
波特率计算:在了解了串行口相关的寄存器之后,我们可得出其通信波特率的一些结论:
① 方式0 和方式2 的波特率是固定的。
在方式0 中, 波特率为时钟频率的1/12, 即fOSC/12,固定不变。
在方式2 中,波特率取决于PCON 中的SMOD 值,即波特率为:

当SMOD=0 时,波特率为fosc/64 ;当SMOD=1 时,波特率为fosc/32。
② 方式1 和方式3 的波特率可变,由定时器1 的溢出率决定。

当定时器T1 用作波特率发生器时,通常选用定时初值自动重装的工作方式2( 注意:不要把定时器的工作方式与串行口的工作方式搞混淆了)。其计数结构为8 位,假定计数初值为Count,单片机的机器周期为T,则定时时间为(256 ?Count)×T 。从而在1s内发生溢出的次数(即溢出率)可由公式(1)所示:

从而波特率的计算公式由公式(2)所示:

在实际应用时,通常是先确定波特率,后根据波特率求T1 定时初值,因此式(2)又可写为:

51单片机串口通讯

二、电路详解

下面就对图1 所示电路进行详细说明。
图1 串行通信实验电路图
最小系统部分(时钟电路、复位电路等)第一讲已经讲过,在此不再叙述。我们重点来了解下与计算机通信的RS-232 接口电路。可以看到,在电路图中,有TXD 和RXD 两个接收和发送指示状态灯,此外用了一个叫MAX3232 的芯片,那它是用来实现什么的呢?首先我们要知道计算机上的串口是具有RS-232 标准的串行接口,而RS-232 的标准中定义了其电气特性:高电平“1”信号电压的范围为-15V~-3V,低电平“0”
信号电压的范围为+3V~+15V。可能有些读者会问,它为什么要以这样的电气特性呢?这是因为高低电平用相反的电压表示,至少有6V 的压差,非常好的提高了数据传输的可靠性。由于单片机的管脚电平为TTL,单片机与RS-232 标准的串行口进行通信时,首先要解决的便是电平转换的问题。一般来说,可以选择一些专业的集成电路芯片,如图中的MAX3232。MAX3232 芯片内部集成了电压倍增电路,单电源供电即可完成电平转换,而且工作电压宽,3V~5.5V 间均能正常工作。其典型应用如图中所示,其外围所接的电容对传输速率有影响,在试验套件中采用的是0.1μF。
值得一提的是MAX3232 芯片拥有两对电平转换线路,图中只用了一路,因此浪费了另一路,在一些场合可以将两路并联以获得较强的驱动抗干扰能力。此外,我们有必要了解图中与计算机相连的DB-9 型RS-232的引脚结构(见图2)。

图2 DB-9连接器接口图
其各管脚定义如下(见表4)。

表4 DB-9型接口管脚定义
三、程序设计
本讲设计实例程序如下:
#include "AT89X52.h" (1)
void Init_Com(void) ( 2)
{
TMOD = 0x20; ( 3)
PCON = 0x00; ( 4)
SCON = 0x50; ( 5)
TH1 = 0xE8; ( 6)
TL1 = 0xE8; ( 7)
TR1 = 1; ( 8)
}
void main(void) ( 9)
{
unsigned char dat; ( 10)
Init_Com(); ( 11)
while(1) ( 12)
程序详细说明:
(1)头文件包含。
(2)声明串口初始化程序。
(3)设置定时器1 工作在模式2,自动装载初值(详见第二讲)。
(4)SMOD 位清0,波特率不加倍。
(5)串行口工作在方式1,并允许接收。
(6)定时器1 高8 位赋初值。波特率为1200b/s(7)定时器1 低8 位赋初值。
(8)启动定时器。
(9)主函数。
(10)定义一个字符型变量。
(11)初始化串口。
(12)死循环。
(13)如果接收到数据。
(14)将接收到的数据赋给之前定义的变量。
(15)将接收到的值输出到P0 口。
(16)对接收标志位清0,准备再次接收。
(17)将接收到的数据又发送出去。
(18)查询是否发送完毕。
(19)对发送标志位清0。
四、调试要点与实验现象
接好硬件,通过冷启动方式将程序所生成的。hex文件下载到单片机运行后,打开串口调试助手软件,设置好波特率1200,复位单片机,然后在通过串口调试助手往单片机发送数据(见图3),可以观察到在接收窗口有发送的数据显示,此外电路板上的串行通信指示灯也会闪烁,P0 口所接到LED 灯会闪烁所接收到的数据。

图3 串口软件调试界面
另外串口调试助手软件使用时应注意的是,如果单片机开发板采用串口下载而且和串口调试助手是使用同一串口,则在打开串口软件的同时不能给单片机下载程序,如需要下载,请首先点击“关闭串口”,做发送实验的时候,注意如果选中16 进制发送的就是数字或者字母的16 进制数值,比如发送“0”,实际接收的就应该是0x00,如果不选中,默认发送的是ASCII 码值,此时发送“0”,实际接收的就应该是0x30,这点可以通过观察板子P0 口上的对应的LED 指示出来。
五、总结
本讲介绍了单片机串口通信的原理并给出了实例,通过该讲,读者可以了解和掌握51 单片机串口通信的原理与应用流程,利用串口通信,单片机可以与计算机相连,也可以单片机互联或者多个单片机相互通信组网等,在实际的工程应用中非常广泛。从学习的角度来说,熟练的利用串口将单片机系统中的相关信息显示在计算机上可以很直观方便的进行调试和开发。

❸ MSP430与PC机之间的RS232串口通信电路如何搭建

MSP430 串口 接口电平?

PC机串口 是标准RS232串口

接口电平一致,可以直接相连

否则 就必须要转换!

请看 武汉鸿伟光电E232TTL RS232/TTL电平无源转换器

❹ 什么是串口通信

串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。

一般完成这种功能的电路,我们称为串行接口电路。

串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。

(4)串口通讯电路扩展阅读:

串口通信的结构:

串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。

串口是计算机上一种非常通用的设备通信协议。大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。串口同时也是仪器仪表设备通用的通信协议;

很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。

❺ 串口电路的作用是什么

http://www.avrvi.s.e.cn/start/guide_avr_hardware_design.html

http://www.eefocus.com/html/06-12/061002576847.shtml

http://www.laogu.com/wz_2982.htm

❻ 485通讯与串口通讯区别

一、应用场景的区别

1、485通讯适用于多主机/驱动器工业环境。主要包括:过程自动化、工厂自动化、HVAC、安防、电机控制、运动控制。

2、串口通讯用于计算机周边,如实现计算机相距不远的“人-机”交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等。


(6)串口通讯电路扩展阅读:


接口标准

一、485通讯

1、平衡传输

RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。

2、RS-422电气规定

由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备,其余为从设备,从设备之间不能通信,所以RS-422支持点对多的双向通信。

RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式或硬件方式实现。

3、RS485电气规定

由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终端电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。

而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主设备,其余为从设备,但它比RS-422有改进,
无论四线还是二线连接方式总线上可多接到32个设备。

4、RS-422与RS-485

RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。

二、串口通讯

1、实现数据格式化

因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。

2、进行串-并转换

串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。

3、控制数据传输速率

串行通信接口电路应具有对数据传输速率—波特率进行选择和控制的能力。

4、进行错误检测

在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。

5、进行TTL与EIA电平转换

CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。

6、提供EIA-RS-232C接口标准所要求的信号线

远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。

❼ 请问RS232和RS485串口电路一样吗 ,怎么接线的啊

都是 串口通信,应用场合不同:
RS232 -3线全双工,点对点通信,传输距离 25米以内。
RS485 -2线半双工,点对多主从通信,传输距离可达 1200米以上
RS485 -4线全双工,主从通信,传输距离可达 1200米以上
由于工业现场通信节点多,位置分散,通信距离远,要求使用最少的线材完成相应的通信任务。根据相关的要求,人们开发出利用两根导线实现多节点互联的EIA RS-485总线标准。RS-485总线采用差分平衡电路,即一条导线上的电压是另外一条导线的电压的取反值,接收器输入电压为两根导线电压的差值。由于其在两条线路上传递的是大小相同,方向相反的电流,而噪声电压对于线路的影响都是同时出现,两条线路的噪声电压相互抵消,极大的削弱噪声的影响。差分平衡电路不受节点之间的地平电压差的影响,EIA 485没有规定引脚定义,信号功能,只需保持两根信号线相邻,在同一个双绞线中,引脚A,B不能互换就可以了,所以在工业现场使用过程中,RS-485接口没有标准的规范,有可能是DB9,也有可能是RJ45/RJ11,但是用的最多的还是工业接线端子。由于RS-485总线采用差分平衡电路,极大的抑制噪声干扰,有极强的抗共模干扰能力,输入电压检测灵敏度为200毫伏(电压信号可以在极远距离进行恢复),使得RS-485的传输距离可以达到1200米(传输速率在110Kbps情况下)。最大传输速率10Mbps(传输距离12米)。RS-485支持多点通信,多个驱动器和接收器共享一条信号通道,在半双工连接模式下,只能有一个驱动器工作,多个驱动器同时启用,会产生线竞争(导致通信失败),同时容易产生大电流,可能导致芯片烧毁。一般485芯片建议使用限流和过热关闭功能保护芯片。
RS-485看:
http://ke..com/view/542681.htm
RS-232接口有DB25接口和DB9接口两种,现在普通使用的基本上都是DB9接口,DB25接口基本上不再使用,DB9接口定义如下(1.载波检测,2.接收数据,3.发送数据,4.数据终端准备就绪,5.信号地,6.调制解调器就绪,7.请求发送,8.允许发送,9.振铃提示),RS-232串口相互连接分为通过Modem连接和无Modem连接,由于以太网,RS-485总线,CAN总线等总线的普及,通过Modem连接做较长距离通信已经基本上不再使用。无Modem连接即直接连接则分为握手连接和无握手连接,无握手连接直接使用2,3,5三个针脚就可以使用,而握手连接则是必须使用请求发送,允许发送,准备就绪等信号,握手连接又称全信号连接。由于RS-232使用单端非差分电路,多条线路共用一个接地线,长距离传输时,不同节点的接地线电平差异可能会达到几伏,有可能导致信号的误读,从而导致RS-232传输距离不能超过15米,传输速率不能超过110Kbps.
RS-232看:
http://ke..com/view/112004.ht

❽ 51单片机和计算机之间实现串口通信的电路图

串口通讯参考程序如下:

来源:深入浅出AVR单片机

#include<reg51.h>

unsignedcharUART_RX;//定义串口接收数据变量

unsignedcharRX_flag;//定义穿行接收标记

/*********************************************************************************************

函数名:UART串口初始化函数

调用:UART_init();

参数:无

返回值:无

结果:启动UART串口接收中断,允许串口接收,启动T/C1产生波特率(占用)

备注:振荡晶体为12MHz,PC串口端设置[4800,8,无,1,无]

/**********************************************************************************************/

voidUART_init(void){

EA=1;//允许总中断(如不使用中断,可用//屏蔽)

ES=1;//允许UART串口的中断

TMOD=0x20;//定时器T/C1工作方式2

SCON=0x50;//串口工作方式1,允许串口接收(SCON=0x40时禁止串口接收)

TH1=0xF3;//定时器初值高8位设置

TL1=0xF3;//定时器初值低8位设置

PCON=0x80;//波特率倍频(屏蔽本句波特率为2400)

TR1=1;//定时器启动

}

/**********************************************************************************************/

/*********************************************************************************************

函数名:UART串口接收中断处理函数

调用:[SBUF收到数据后中断处理]

参数:无

返回值:无

结果:UART串口接收到数据时产生中断,用户对数据进行处理(并发送回去)

备注:过长的处理程序会影响后面数据的接收

/**********************************************************************************************/

voidUART_R(void)interrupt4using1{//切换寄存器组到1

RI=0;//令接收中断标志位为0(软件清零)

UART_RX=SBUF;//将接收到的数据送入变量UART_data

RX_flag=1;//标记接收

//用户函数内容(用户可使用UART_data做数据处理)

//SBUF=UART_data;//将接收的数据发送回去(删除//即生效)

//while(TI==0);//检查发送中断标志位

//TI=0;//令发送中断标志位为0(软件清零)

}

/**********************************************************************************************/

/*********************************************************************************************

函数名:UART串口发送函数

调用:UART_T(?);

参数:需要UART串口发送的数据(8位/1字节)

返回值:无

结果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式

备注:

/**********************************************************************************************/

voidUART_T(unsignedcharUART_data){//定义串口发送数据变量

ES=0;//禁止穿行中断

SBUF=UART_data;//将接收的数据发送回去

while(TI==0);//检查发送中断标志位

TI=0;//令发送中断标志位为0(软件清零)

ES=1;//打开穿行中断

}

/*********************************************************************************************

函数名:UART串口发送字符串函数

调用:UART_S(?);

参数:需要UART串口发送的数据(8位/1字节)

返回值:无

结果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式

备注:

/**********************************************************************************************/

voidUART_S(unsignedchar*str)

{

while(1)

{

if(*str=='')break;

UART_T(*str++);

}

}

/*********************************************************************************************

函数名:主函数

调用:main();

参数:

返回值:无

结果:

备注:

/**********************************************************************************************/

voidmain()

{

unsignedcharBuf_data[]={"welcometoMCUworld. "};

UART_init();

UART_S(Buf_data);

while(1){

if(RX_flag==1)

{

UART_T(UART_RX);

RX_flag=0;

}

}

}

祝愿楼主马到功成

❾ STM32F103单片机的串行口通信电路和GPRS通信电路怎么实现

实现单片机模块与设备模块之间的串口通讯,首先需要将双方正确地连接起来。异步串行通讯是很常用的一种模块间互连方式,一般会使同三条连接线,分别标记为Tx(或TxD)、Rx(或RxD),以及GND。其中Tx用于数据发送,是输出信号; Rx用于数据接收,是输入信亐,GND为公共地线。
题目图1中的USART1_Rx表示单片机的数据接收端,应该与图2中的GSM_TxD相连接,而图1中的∪SART1_Tx表示单片机的数据犮送端,应与图2中的GSM_RxD相连,单片机的GND与GSM模块的GND共在一起。然后就是软件工作,双方要约定一致的通讯参数(如波特率,数据位,校验位,停止位等),在单片机一端编写串口设置程序,并根据GSM模块的命令集和命令格式编写控制程序。
需要注意一点,常用的异步串行通讯接口的电平标准有RS232和TTL,RS232用于远距离长线连接,而TTL用于短距离连接。这两者是不可以直接互联的。如果需要连接,必须先转换成相同的电平标准。单片机引脚:信号是TTL标准的,而外购模块串口电平与模块制造厂家,模块型号等有关,需要查看模块的技术说明文件。

阅读全文

与串口通讯电路相关的资料

热点内容
别墅后院如何做防水 浏览:475
大平米sbs防水为什么一直漏水 浏览:674
老磁带盒怎么翻新 浏览:964
线路维修需要哪些小型养护机械 浏览:330
座机电话有杂音是怎么维修 浏览:727
先科电热水壶维修视频 浏览:275
iphone保修换电池吗 浏览:85
沃尔沃s60l国产维修费 浏览:882
防水绝缘胶带怎么用 浏览:429
哪些家电中有银 浏览:740
品爱家具品牌怎么样 浏览:988
洛阳上门维修家电 浏览:52
北京市天梭售后维修点 浏览:554
如何做好汽车维修行业2018 浏览:36
海尔热顺义维修电话 浏览:681
合肥皇明太阳能维修电话 浏览:410
莆田家庭防水补漏电话多少 浏览:822
苹果手机wifi部件怎么维修 浏览:846
闭合电路的一部分导体 浏览:693
有锁机在国内保修吗 浏览:847