RS232通讯协议是什么?
没有通讯协议。
RS-232是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。
RS-232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。
通常 RS-232 接口以9个接脚 (DB-9) 或是25个接脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。
扩展资料:
RS232接口的缺点:
由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点:
(1) 、接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2) 、传输速率较低,在异步传输时,波特率为20Kbps。
(3) 、接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4) 、传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。
参考资料来源:百度百科-RS-232协议
http://wenku.baidu.com/link?url=aH5Xqqw7LWQQNjQKx3e41HyP6WODXv5EMvPViFkJUMBPnfKnvgWqJn87W64l4gckKlHIMNLmZBn-FDi2Hzo57Q7zwMeoSIYaxqiP59ltkL_
串口、RS232、COM口
2007年09月07日 星期五 11:03
什么是串口?
------------------------------------------
串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS232口。同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。通信使用3根线完成: (1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:
(a) 波特率: 这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是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?
------------------------------------------
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS- 232串口通信最远距离是50英尺。
-DB-9针连接头
-------------
\ 1 2 3 4 5 /
-\ 6 7 8 9 /
-----------
从计算机连出的线的截面。
RS-232针脚的功能:
数据:
TXD(pin 3): 串口数据输出
RXD(pin 2): 串口数据输入
握手:
RTS(pin 7): 发送数据请求
CTS(pin 8): 清除发送
DSR(pin 6): 数据发送就绪
DCD(pin 1): 数据载波检测
DTR(pin 4): 数据终端就绪
地线:
GND(pin 5): 地线
其他
RI(pin 9): 铃声指示
注:
COM接口就是遵循RS232标准的物理口。
COM口指串口的物理实现,而RS232是一种串口接口标准。
COM接口
------------------------------------------
COM接口是指Component Object Mode接口,是微软定义的标准接口。
串口叫做串行接口,现在的PC机一般有两个串行口COM 1和COM 2。串行口不同于并行口之处在于它的数据和控制信息是一位接一位地传送出去的。虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。通常COM 1使用的是9针D形连接器,也称之为RS-232接口,而COM 2有的使用的是老式的DB25针连接器,也称之为RS-422接口,这种接口目前已经很少使用。
RS232 通信 (VB与C 通讯协议,C版)2007-10-13 10:29:08| 分类: C Language | 标签: |字号大中小 订阅 .
/*=============================================================================
PIC RS232收到'S'or's',返回"S:StartADC",开始测量CH0电压,并且将数据通过RS232送出;
收到'Q'or'q',返回"Q:EndADC",停止量测CH0电压.
============================================================================*/
///////////////////////////////////////////////////////////////////////////////
// MPLAB IDE V7.11 + CCS C3.18
// Use 16F877A ADC and Rs232 for MCD2-demo
//
// by LW7807@163.com
// 2005/06/23
///////////////////////////////////////////////////////////////////////////////
#include <16F877A.h> // PIC16F877 header file
#pragma device ADC=10 // 10 bits ADC
#pragma use delay(clock=4000000) // for 4Mhz crystal
#pragma fuses XT, NOWDT, NOPROTECT, NOLVP // for debug mode,//XT就是选时钟,NOWDT没有看门狗 ,NOPROTECT没保护,NOLVP没低电压编程
#pragma use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, stream=MYPC) //stream表示对RS232赋缺省值
// rs232 setting
#define DO_NOTHING 0
#define DO_START_ADC 1
#define DO_END_ADC 2
/*===========================================================================*/
void main(void)
{
int16 int_volt; //定义一个16位的整形变量,CCS C缺省是正数无符号,最大到2^16=65536.
int8 str_volt[21];//定义一个8位的数组变量,CCS C缺省是正数无符号,最大到2^8=256.
float flt_volt; //定义一个32位的浮点数变量
int8 do_what = DO_NOTHING;
int8 tmp;
while(1){
// if rs232 get char
if(0 != kbhit()) //Return true when a character is received in the buffer in case of hardware RS232.
//kbhit()即只要有键盘输入字符发送到RS232缓冲器,就返回TURE-1,否则返回False-0.
{
tmp = fgetc(MYPC);//fgetc()接收到RS232缓冲器的字符,并赋值给tmp.
switch(tmp)
{
case 'S':
case 's':
printf( "S:StartADC\n" );
do_what = DO_START_ADC;
// init pic16f877a adc
setup_adc_ports(RA0_RA1_RA3_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
break;
case 'Q':
case 'q':
printf( "Q:EndADC\n" );
do_what = DO_END_ADC;
// adc off
setup_adc(ADC_OFF);
break;
default : // rs232 get other char
putc(tmp);
break;
}//end switch(tmp)
}//end if(kbhit())
switch(do_what)
{
case DO_START_ADC:
// start adc and send result to PC
int_volt = read_adc();
flt_volt = 5.0 * int_volt / 0x3ff;
sprintf(str_volt, "ADC_CH0:%1.3fV\n", flt_volt);
printf(str_volt);
printf( "delay_ms(300)\n" );
delay_ms(300);
break;
case DO_END_ADC:
// you want to do
break;
case DO_NOTHING:
// you want to do
break;
default:
break;
}//end switch(do_what)
}//end while(1)
}//end main()
有的通讯定义的层数很多,局域网就定义了5-8层,意义各不相同,各层各干什么(自己的事)。用户一般只接触物理层(底层)和应用层(顶层),即我们玩的网卡(底层)和网页浏览(顶层)。中间层用于路由、管理、诊断、分配...
2018-07-25 · 知道合伙人教育行家
RS-232是一种通讯接口标准。
个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。
RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。
在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。