您现在的位置是:首页 >

mcs低 mcs-51微控制器的序列通讯介面有4种工作方式,它们都是实现串列埠通讯功能的吗

火烧 2023-02-17 10:33:12 1039
mc -51微控制器的序列通讯介面有4种工作方式,它们都是实现串列埠通讯功能的吗 mc -51微控制器的序列通讯介面有4种工作方式,它们都是实现串列埠通讯功能的吗这个不全是,串列埠方式0是作为同步以为
mcs低 mcs-51微控制器的序列通讯介面有4种工作方式,它们都是实现串列埠通讯功能的吗

mcs-51微控制器的序列通讯介面有4种工作方式,它们都是实现串列埠通讯功能的吗  

mcs-51微控制器的序列通讯介面有4种工作方式,它们都是实现串列埠通讯功能的吗

这个不全是,串列埠方式0是作为同步以为暂存器使用的,你用它可以模拟SPI 作为主机。
其他三个是串列埠,只是每次通讯的资料位数或波特率不同而已

mcs-51微控制器的序列通讯介面都是实现串列埠通讯功能的吗

序列口分四种工作方式,由SCON中的SMO、SM1二位选择决定。 1.方式0 (1)特点 1.用作序列口扩充套件,具有固定的波特率,为Fosf/12。 2.同步传送/接收,由TXD提供移位脉冲,RXD用作资料输入/输出通道。 3.传送/接收8位资料,低位在先。 (2)传送操...

mcs-51微控制器的序列通讯介面使用哪个介面的哪些引脚对外连线

微控制器的序列通讯可以有TTL连线,RS232介面,RS485介面。
TTL连线适合于两个微控制器近距离通讯,1米以内为宜。连线3个脚,
RXD(P3.0)和TXD(P3.1),还有GND。其中的RXD,TXD两个微控制器要交叉连线,
即甲的RXD连线乙的TXD,甲的TXD连线乙的RXD。这种连线用于试验。
最常用的是RS232串列埠,这样微控制器可以和电脑进行序列通讯,电脑上就有RS232串列埠,即COM口。
要接成RS232介面,微控制器需要一片RS232介面晶片,如MAX202,或MAX232等。也是用微控制器的RXD,TXD两个脚。
RS485介面,也需要一片RS485晶片。同样也是用微控制器RXD,TXD。

序列通讯介面的标准

RS232介面就是串列埠,电脑机箱后方的9芯插座,旁边一般有 "|O|O|" 样标识。
一般机箱有两个,新机箱有可能只有一个。膝上型电脑有可能没有。
有很多工业仪器将它作为标准通讯埠。通讯的内容与格式一般附在仪器的使用者说明书中。
计算机与计算机或计算机与终端之间的资料传送可以采用序列通讯和并行通讯二种方式。由于序列通讯方式具有使用线路少、成本低,特别是在远端传输时,避免了多条线路特性的不一致而被广泛采用。 在序列通讯时,要求通讯双方都采用一个标准介面,使不同 的装置可以方便地连线起来进行通讯。 RS-232-C介面(又称 EIA RS-232-C)是目前最常用的一种序列通讯介面。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、 调变解调器厂家及计算机终端生产厂家共同制定的用于序列通讯的标 准。它的全名是“资料终端装置(DTE)和资料通讯装置(DCE)之间 序列二进位制资料交换介面技术标准”该标准规定采用一个25个脚的 DB25联结器,对联结器的每个引脚的讯号内容加以规定,还对各种信 号的电平加以规定。
(1)介面的讯号内容 实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。RS-232-C最常用的9条引线的讯号内容见附表1所示
(2)介面的电气特性 在RS-232-C中任何一条讯号线的电压均为负逻辑关系。即:逻 辑“1”,-5— -15V;逻辑“0” +5— +15V 。噪声容限为2V。即 要求接收器能识别低至+3V的讯号作为逻辑“0”,高到-3V的讯号 作为逻辑“1”
(3) 介面的物理结构 RS-232-C介面联结器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端. 一些装置与PC机连线的RS-232-C介面,因为不使用对方的传送控制讯号,只需三条介面线,即“传送资料”、“接收资料”和“讯号地”。所以采用DB-9的9芯插头座,传输线采用遮蔽双绞线。
(4)传输电缆长度 由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的使用者是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10%而得出附表2 的实验结果。其中1号电缆为遮蔽电缆,型号为DECP.NO.9107723 内有三对双绞线,每对由22# AWG 组成,其外覆以遮蔽网。2号电缆为不带遮蔽的电缆。型号为DECP.NO.9105856-04是22#AWG的四芯电缆。
1.RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种序列物理介面标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C汇流排标准设有25条讯号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通讯,仅需几条讯号线就可实现,如一条传送线、一条接收线及一条地线。RS-232-C标准规定的资料传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通讯距离将受此电容限制,例如,采用150pF/m的通讯电缆时,最大通讯距离为15m;若每米电缆的电容量减小,通讯距离可以增加。传输距离短的另一原因是RS-232属单端讯号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通讯。
2.RS-485汇流排,在要求通讯距离为几十米到上千米时,广泛采用RS-485 序列汇流排标准。RS-485采用平衡传送和差分接收,因此具有抑制共模干扰的能力。加上汇流排收发器具有高灵敏度,能检测低至200mV的电压,故传输讯号能在千米以外得到恢复。 RS-485采用半双工工作方式,任何时候只能有一点处于传送状态,因此,传送电路须由使能讯号加以控制。RS-485用于多点互连时非常方便,可以省掉许多讯号线。应用RS-485 可以联网构成分散式系统,其允许最多并联32台驱动器和32台接收器。
以往,PC与智慧装置通讯多借助RS232、RS485、乙太网等方式,主要取决于装置的介面规范。但RS232、RS485只能代表通讯的物理介质层和链路层,如果要实现资料的双向访问,就必须自己编写通讯应用程式,但这种程式多数都不能符合ISO/OSI的规范,只能实现较单一的功能,适用于单一装置型别,程式不具备通用性。在RS232或RS485装置联成的装置网中,如果装置数量超过2台,就必须使用RS485做通讯介质,RS485网的装置间要想互通讯息只有通过“主(Master)”装置中转才能实现,这个主装置通常是PC,而这种装置网中只允许存在一个主装置,其余全部是从(Slave)装置。而现场汇流排技术是以ISO/OSI模型为基础的,具有完整的软体支援系统,能够解决汇流排控制、冲突检测、链路维护等问题。...
RS-232C介面标准详解
序列通讯介面标准经过使用和发展,目前已经有几种。但都是在 RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通讯协议。它适合于资料传输速率在0~20000b/s范围内的通讯。这个标准对序列通讯介面的有关问题,如讯号线功能、电器特性都作了明确规定。由于通行装置厂商都生产与RS-232C制式相容的通讯装置,因此,它作为一种标准,目前已在微机通讯介面中广泛采用。
在讨论RS-232C介面标准的内容之前,先说明两点:
首先,RS-232-C标准最初是远端通讯连线资料终端装置DTE(Data Terminal Equipment)与资料通讯装置DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机介面)与终端或外设之间的近端连线标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不相容的地方就不难理解了。
其次,RS-232C标准中所提到的“传送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O装置之间传送资讯,两者都是DTE,因此双方都能传送和接收。
一、RS-232-C
RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(emeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连线电缆和机械、电气特性、讯号功能及传送过程。常用物理标准还有有EIARS-232-C、EIARS-422-A、EIARS-423A、EIARS-485。 这里只介绍EIARS-232-C(简称232,RS232)。 例如,目前在IBM PC机上的COM1、COM2介面,就是RS-232C介面。
1.电气特性
EIA-RS-232C对电器特性、逻辑电平和各种讯号线功能都作了规定。
在TxD和RxD上:逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
讯号有效(接通,ON状态,正电压)=+3V~+15V
讯号无效(断开,OFF状态,负电压)=-3V~-15V
图1
以上规定说明了RS-323C标准对逻辑电平的定义。对于资料(资讯码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平告语+3V;对于控制讯号;接通状态(ON)即讯号有效的电平高于+3V,断开状态(OFF)即讯号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。
EIA-RS-232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑
状态的规定不同。因此,为了能够同计算机介面或终端的TTL器件连线,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用积体电路晶片。目前较为广泛地使用积体电路转换器件,如MC1488、SN75150晶片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232晶片可完成TTL←→EIA双向电平转换,图1显示了1488和1489的内部结构和引脚。MC1488的引脚(2)、(4,5)、(9,10)和(12,13)接TTL输入。引脚3、6、8、11输出端接EIA-RS-232C。MC1498的14的1、4、10、13脚接EIA输入,而3、6、8、11脚接TTL输出。具体连线方法如图2所示。图中的左边是微机序列介面电路中的主晶片UART,它是TTL器件,右边是EIA-RS-232C联结器,要求EIA高电压。因此,RS-232C所有的输出、输入讯号都要分别经过MC1488和MC1498转换器,进行电平转换后才能送到联结器上去或从联结器上送进来。
图2
2、、联结器的机械特性:
联结器: 由于RS-232C并未定义联结器的物理特性,因此,出现了DB-25、DB-15和DB-9各种型别的联结器,其引脚的定义也各不相同。下面分别介绍两种联结器。
(1)DB-25: PC和XT机采用DB-25型联结器。DB-25联结器定义了25根讯号线,分为4组:
①非同步通讯的9个电压讯号(含讯号地SG)2,3,4,5,6,7,8,20,22
②20mA电流环讯号 9个(12,13,14,15,16,17,19,23,24)
③空6个(9,10,11,18,21,25)
④保护地(PE)1个,作为装置接地端(1脚)
DB-25型联结器的外形及讯号线分配如图3所示。注意,20mA电流环讯号仅IBM PC和IBM PC/XT机提供,至AT机及以后,已不支援。
电缆长度:在通讯速率低于20kb/s时,RS-232C所直接连线的最大物理距离为15m(50英尺)。
最大直接传输距离说明:RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求,介面标准在电气特性中规定,驱动器的负载电容应小于2500pF。

C语言实现序列通讯介面程式

程式设计原理
程式1为查询通讯方式介面程式,为一典型的资料采集例程。其中bios()函式初始化COM1(此函式实际呼叫BIOS INT 14H中断0号功能)。这样在程式中就避免了具体设定波特率因子等繁琐工作,只需直接访问传送/接收暂存器(3F8H)和线路状态暂存器(3FDH)来控制UART的工作。线路状态暂存器的标志内容如下:
第0位 1=收到一位元组资料 第1位 1=所收资料溢位 第2位 1=奇偶校验错
第3位 1=接收资料结构出错 第4位 1=断路检测
第5位 1=传送储存暂存器空 第6位 1=传送移位暂存器空 第7位 1=超时
当第0位为1时,标志UART已收到一完整位元组,此时应及时将之读出,以免后续字元重叠,发生溢位错误,UART有传送保持暂存器和传送移位暂存器。传送资料时,程式将资料送入保持暂存器(当此暂存器为空时),UART自动等移位暂存器为空时将之写入,然后把资料转换成序列形式传送出去。
本程式先发送命令,然后回圈检测,等待接收资料,当超过一定时间后视为资料串接收完毕。若接收到资料后返回0,否则返回1。
若以传送一个ASCII字元为例,用波特率9600 b/s,7个数据位,一个起始位,一个停止位来初始化UART,则计算机1秒可传送/接收的最大资料量仅为9600/9=1074位元组,同计算机所具有的高速度是无法相比的,CPU的绝大部分时间耗费在回圈检测标志位上。在一个有大量资料序列输入/输出的应用程式中,这种消耗是无法容忍的,也不是一种高效率通讯方式,而且可以看到,在接收一个长度未知的资料串时,有可能发生遗漏。
程式2是一组中断方式通讯介面程式。微机有两条用于序列通讯的硬体中断通道IRQ3(COM2)和IRQ4(COM1),对应中断向量为OBH和OCH,可通过设定中断遮蔽暂存器(地址21H)来开放中断。置1时遮蔽该中断,否则开放中断。硬体中断例程必须在程式末尾往中断命令暂存器(地址20H)写入20H,即 MOV AL, 20HOUT 20H, AL用以将当前中断服务暂存器清零,避免中断重复响应。 每路UART有4组中断,程式可通过中断允许暂存器(3F9H)来设定开放那路中断。这4组中断的位标志如下: 第0位 1=接收到资料
第1位 1=传送保持暂存器为空 第2位 1=接收资料出错
第3位 1=MODEM状态暂存器改变 第4~7位为0
在中断例程中检查UART的中断标志暂存器(3FAH),确定是哪一组事件申请中断。该暂存器第0位为0时表示有中断申请,响应该中断并采取相应措施后,UART自动复位中断标志;第2,1位标志中断型别,其位组合格式如下:程式码 中断型别 复位措施11接收出错读线路状态暂存器10接收到资料读接收暂存器01传送暂存器空输出字元至传送暂存器00MODEM状态改变读MODEM状态暂存器这4组中断的优先顺序为0号最低,3号最高。 在本组程式中,函式setinterrupt()和clearinterrupt()设定和恢复序列通讯中断向量;init()初始化指定序列口并开放相应中断;senddata()和geteomdata()用于传送和接收资料串;1()和2()为中断例程,二者均呼叫fax2()函式,fax2()函式为实际处理资料接收和传送的例程。明确了序列口的工作原理,就不难理解其具体程式。 3.结论
上述程式采用C语言编写,在BORLAND C++2.0整合环境中除错通过,为简单起见,只考虑了使用传送/接收两条讯号线的情况,并未考虑使用握手讯号线。 在实际应用中这两组程式尚有一些可修改之处。比如,中断接收程式中的缓冲区可改为回圈表,以防资料溢位,尽可能保留最新资料。由于笔者水平所限,文中不足疏漏之处尚希行家指正。 程式1:
static int receive_delay=10000;
int may(unsigned par,char *m,char *ss) {int cs=0,j=0; char *p;
bios(0,par,0); 1 loop:p=m;
inportb(0x3f8); reset
do{ while((inportb(0x3f8+5)&0x20)==0); outportb(0x3f8,*p++); }while(*p); /nd mand os=0;j=0;
do{ if((inportb(0x3fd)&0x01)==0) if(os〉receive_delay) break; else { cs++;
continue; } ss[j++]=inportb(0x3f8); cs=0; }while(l); ss[j]=''; if(j) return 0; else return 1;

松下伺服MEDHT7364E+MDME202GCG,没有序列通讯介面,能实现USB介面通讯(省去PLC/微控制器)吗?

你是要用上位机控制伺服吗,A5E不带232介面,除非你知道 USB的通讯协议,否则是没法做的

序列通讯介面和USB有区别吗?

USB和序列通讯介面有什么关系 一个是移动储存 相当与硬碟 而另一个只是传输资料的

序列通讯介面和USB有不同吗

百度一下,USB介面传输速度很快的,USB2.0(480M/S),一般作为资料传输用的。 串列埠一般只有多少K,只是作为除错用的。两个速率差太多了。

51微控制器串列埠通讯

#include <reg51.h>
#include <string.h>
unsigned char ch;
bit read_flag= 0 ;
void init_serial( void ) 串列埠通讯初始设定
{
SCON = 0x50 ; UART为模式1,8位资料,允许接收
TMOD |= 0x20 ; 定时器1为模式2,8位自动重灌
PCON |= 0x80 ; SMOD=1;
TH1 = 0xFD ; Baud:19200 fosc="11".0592MHz
IE |= 0x90 ; Enable Serial Interrupt
TR1 = 1 ; timer 1 run
TI=1;
}
向串列埠传送一个字元
void send_char_( unsigned char ch)
{
SBUF=ch;
while (TI== 0);
TI= 0 ;
}
串列埠接收中断函式
void serial () interrupt 4 using 3
{
if (RI)
{
RI = 0 ;
ch=SBUF;
read_flag= 1 ; 就置位取数标志
}
}
main()
{
init_serial(); 初始化串列埠
while ( 1 )
{
if (read_flag) 如果取数标志已置位,就将读到的数从串列埠发出
{
read_flag= 0 ; 取数标志清0
send_char_(ch);
}
}
}

什么是rs232序列通讯介面?

前面的那是型号吧,我也不大清楚,只要知道序列通讯介面就行了。
一般资料传输需要用一种控制资讯来控制资料,所以,这里面就有2种资讯。
一种为资料资讯,一种为控制资讯。
序列通讯就是同时在一种传输介质中传输这2种资讯。速率较低。不过也有很多好处。
序列通讯介面就是这种型别的介面。就类似于USB介面的这种介面。

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码