仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

单片机串口通信原理

清柠Triste 2011-04-15 07:22:02 434  浏览
  •  

参与评论

全部评论(4条)

  • 心在哪拍档 2011-04-21 00:00:00
    1.RS232接口 RS232-C接口连接器一般使用型号为DB-9的9芯插头座,只需3条接口线,即"发送数据"、"接收数据"和"信号地"即可传输数据,其9个引脚的定义如图11-3所示。 图11-3 RS232-C接口连接器定义 在RS232的规范中,电压值在+3V~+15V(一般使用+6V)称为"0"或"ON"。电压在-3V~-15V(一般使用-6V)称为"1"或"OFF";计算机上的RS232"高电位"约为9V,而"低电位"则约为-9V。 RS232为全双工工作模式,其信号的电压是参考地线而得到的,可以同时进行数据的传送和接收。在实际应用中采用RS232接口,信号的传输距离可以达到15m。不过RS232只具有单站功能,即一对一通信。 2.RS485接口 RS485采用正负两根信号线作为传输线路。两线间的电压差为+2V~6V表示逻辑"1":两线间的电压差为-2V~6V表示逻辑"0"。 RS485为半双工工作模式,其信号由正负两条线路信号准位相减而得,是差分输入方式,抗共模干扰能力强,即抗噪声干扰性好;实际应用中其传输距离可达1200米。RS485具有多站能力,即一对多的主从通信。 在串行通信中,数据通常是在两个站之间传送,按照数据在通信线路上的传送方向可分为3种基本的传送方式:单工、半双工和全双工,如图11-4所示。 (点击查看大图)图11-4 单工、半双工和全双工通信 单工通信使用一根导线,信号的传送方和接收方有明确的方向性。也就是说,通信只在一个方向上进行。 若使用同一根传输线既作为接收线路又作为发送线路,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。 当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。全双工方式无须进行方向的切换。 串行通信可分为两种类型,一种是同步通信,另一种是异步通信。采用同步通信时,将所有字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,填上空字符,因为同步传输不允许有空隙。采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数据位来作为分隔位。比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式高,因为同步方式的非数据信息比例比较小。但是,从另一方面看,同步方式要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每一个信息位的位置。这样一来,如果采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。在数据传输中,较为广泛采用的是异步通信,异步通信的标准数据格式如图11-5所示。 (点击查看大图)图11-5 异步通信数据格式 从图11-5所列格式可以看出,异步通信的特点是一个字符一个字符地传输,并且每个字符的传送总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一次有一个起始位,紧接着是5~8个的数据位,再后为校验位,可以是奇检验,也可以是偶校验,也可不设置,Z后是1比特,或1比特半,或2比特的停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿,以此标识开始传送数据。

    赞(4)

    回复(0)

    评论

  • 梦魇bd7l5y 2011-04-17 00:00:00
    1、51系列单片机的串口有4个模式,可分别用作串并转换、并串转换、异步串行通信(2种模式)。异步串行通信中,有1+8+1和1+8+1+1两种帧格式,多机通信是特殊的通信方式。 2、基本原理是两组移位寄存器。将并行通信转换成串行通信模式(发送部分),或反之(接收部分)。可全双工运行。 3、速度通过移位脉冲决定。具体一般通过定时器1的自动装载模式产生的溢出脉冲给出。 4、电平上采用的是CMOS逻辑。 5、以上是物理层和数据链路层的单片机串口模块的约定,其他层需要软件人员根据需要自行把握。另外,电平需要根据实际通信环境做变换,如232、485或红外等。

    赞(15)

    回复(0)

    评论

  • 也迷糊呢 2011-04-16 00:00:00
    将一个或多个字节一位一位地通过串行总线按照一定的频率(波特率)发送出去就是串口通讯,接收方和发送方要有相同的物理设置(如波特率)和协议设置

    赞(20)

    回复(0)

    评论

  • 897600865 2018-04-11 00:00:00
    串行通信的基本原理: 串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。 在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。 应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

    赞(2)

    回复(0)

    评论

热门问答

单片机串口通信原理
 
2011-04-15 07:22:02 434 4
电子负载与单片机怎么实现串口通信
 
2014-07-15 00:25:30 507 2
力控组态软件怎样和单片机串口通信
想用力控做一个界面实现和单片机串口通信,请高手指教... 想用力控做一个界面实现和单片机串口通信,请高手指教 展开
2012-12-06 05:02:57 370 3
labview课设,串口通信,求个单片机程序
具体要求如下;【设计内容】1、编制单片机程序,实现在LED上显示指定的字符串并进行调试。2、编制虚拟仪器软件,可以通过串口实现与单片机的通迅,可以向单片机发送规定的字符串并在单... 具体要求如下; 【 设计内容 】 1、编制单片机程序,实现在LED上显示指定的字符串并进行调试。 2、编制虚拟仪器软件,可以通过串口实现与单片机的通迅,可以向单片机发送规定的字符串并在单片机试验箱的LED显示器上显示。 3、实验设备为:计算机、单片机试验箱、串口数据线。 【 设计要求 】 1、程序能够连续运行,可在字符型控件中输入字符串,点击发送键可以向单片机发送该字符串。 2、单片机在接受字符串后,在LED上进行显示,要求字符显示正确,当发送的字符串较长时,应能逐个字符显示。 3、编程实现,界面友好,操作方便。 展开
2012-06-15 03:39:22 458 3
modbus rtu串口通信
公司买了一个温度巡检仪,功能有限,我想通过自己做的软件来增强巡检仪的功能,但对串口通信编程知之甚少。现通过监控原程序得到以下数据:write requests: 01 03 00 01 00 01 D5 CA 01 01 00 50 00 20 3D C3 01 03 00 60 00 10 44 18 read requests: 01 03... 公司买了一个温度巡检仪,功能有限,我想通过自己做的软件来增强巡检仪的功能,但对串口通信编程知之甚少。现通过监控原程序得到以下数据:write requests: 01 03 00 01 00 01 D5 CA 01 01 00 50 00 20 3D C3 01 03 00 60 00 10 44 18 read requests: 01 03 02 00 02 39 85 01 01 04 00 00 00 00 FB D1 01 03 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 4E 20 AE 38 从中能不能翻译出什么东西?? 后来我又根据已有资料及网上相关程序编写了以下通讯程序: Private Sub Command1_Click() '发请求 Dim btSend(23) As Byte btSend(0) = &H1 '目标站号 btSend(1) = &H3 '功能码 btSend(2) = &H0 'I0.0地址(0000)高字节 btSend(3) = &H1 'i0.0地址(0000)低字节 btSend(4) = &H0 '读取个数高字节 btSend(5) = &H1 '读取个数低字节 btSend(6) = &HD5 btSend(7) = &HCA btSend(8) = &H1 btSend(9) = &H1 btSend(10) = &H0 btSend(11) = &H50 btSend(12) = &H0 btSend(13) = &H20 btSend(14) = &H3D btSend(15) = &HC3 btSend(16) = &H1 btSend(17) = &H3 btSend(18) = &H0 btSend(19) = &H60 btSend(20) = &H0 btSend(21) = &H10 btSend(22) = &H44 btSend(23) = &H18 ComK3.Output = CVar(btSend) Dim btReceive As Variant With ComK3 Do DoEvents Loop Until .InBufferCount = 5 .InputLen = 30 btReceive = .Input Text1.Text = Hex$(btReceive(1)) Text2.Text = Hex$(btReceive(2)) Text3.Text = Hex$(btReceive(3)) Text4.Text = Hex$(btReceive(4)) ' Text5.Text = Hex$(btReceive(5)) 'Text6.Text = Hex$(btReceive(6)) ' Text7.Text = Hex$(btReceive(7)) ' Text8.Text = Hex$(btReceive(8)) ' Text9.Text = Hex$(btReceive(9)) ' Text10.Text = Hex$(btReceive(10)) ' Text11.Text = Hex$(btReceive(11)) ' Text12.Text = Hex$(btReceive(12)) ' Text13.Text = Hex$(btReceive(13)) ' Text14.Text = Hex$(btReceive(14)) ' Text15.Text = Hex$(btReceive(15)) ' Text16.Text = Hex$(btReceive(16)) ' End If End With End Sub Private Sub Form_Load() With ComK3 .CommPort = 1 .Settings = "9600,N,8,2" .InputMode = comInputModeBinary '二进制收发 .InBufferSize = 512 .OutBufferSize = 512 If (Not .PortOpen) Then .PortOpen = True End With End Sub 能收到4个乱码,应该是错误标示,原程序待CRC验证,我验证不出,所以先删除了。期望大侠们帮我修改下程序 展开
2009-07-05 16:19:26 407 2
两个单片机能不能不通过两个MAX232直接连接进行串口通信?
单片机串口通信要通过MAX232进行电平转换,两个单片机通常需要两片,这样相当于电平转换了两次,也就是又转换回了初试的TTL电平,那么能不能直接不用MAX232.两个单片机之间直接是TTL电平通信呢?
2012-07-01 09:05:37 475 7
总线通信与串口通信有什么区别
请教下大虾们,常说的总线有profibus、can、modbus、FF、devicenet等,这些是不是以走什么协议来命名的?那我可以说:“它走can协议吗?”而常见的串口通信modbus,MPI,PPI等与总线通信... 请教下大虾们,常说的总线有profibus、can、modbus、FF、devicenet等,这些是不是以走什么协议来命名的?那我可以说:“它走can协议吗?”而常见的串口通信modbus, MPI , PPI等与总线通信有什么区别呢? 展开
2017-09-03 18:20:12 531 1
串口通信和串行通信有什么区别?
 
2017-09-03 22:50:26 571 2
51单片机串口通讯
51单片机串口是不是全双工的,我记得书上写的是,但是用中断的话,又想发送和接收同时进行,程序怎么写?按理说在中断里根据是RI=1还是TI=1是可以判断接收引起的中断还是发送引起的中... 51单片机串口是不是全双工的,我记得书上写的是,但是用中断的话,又想发送和接收同时进行,程序怎么写?按理说在中断里根据是RI=1还是TI=1是可以判断接收引起的中断还是发送引起的中断,但是发送和接收同时进行是不是会出现RI和TI同时为1?对此很困惑,总觉得不是全双工,哪位帮我解释一下,谢谢! 展开
2016-10-16 04:46:14 453 1
压力传感器串口通信的问题
Z近在用压力传感器在做串口通信,需要将压力传感器传出的数据通过串口解析然后保存到数据库中。可是在重量,也就是压力不变的情况下,串口接收到的数据一直在循环变化。到底哪些才是... Z近在用压力传感器在做串口通信,需要将压力传感器传出的数据通过串口解析然后保存到数据库中。可是在重量,也就是压力不变的情况下,串口接收到的数据一直在循环变化。到底哪些才是需要的数据格式呢?压力不可能在一直变化的啊。接收到的数据应该如何解析呢?如何转化为我们所需要的压力数值呢?(压力传感器没有什么协议之类的描述,只给了模拟量和压力之间的计算公式)。 大神求指点啊!!! 我们购买的压力传感器输出的是模拟信号,我们用了ADC将其转化为数值信号,但是输出的数据格式不知道如何解析。另外,有测量介质是固体的数字压力传感器吗?我查了好像大部分数字压力传感器都是测液压和气压的啊,没有测量固体压力的。高手帮忙啊! 展开
2013-04-26 08:49:26 434 2
63201电子负载如何设置串口通信
 
2015-06-02 13:50:35 373 1
九针串口通信连接线的接法
九针串口通信连接线的接法是不是只要用到三根线就可以,其中,公对公母对母,,公对母各是怎么样接的用,数字123456789表示就可以啦希望高手能说明白一点... 九针串口通信连接线的接法 是不是只要用到三根线就可以, 其中,公对公 母对母,,公对母 各是怎么样接的 用,数字 123456789 表示就可以啦 希望高手能说明白一点 展开
2013-03-26 10:18:50 920 4
设计一个用8250实现串口通信
 
2011-06-17 03:16:24 326 2
实现串口通信分析用什么软件
 
2015-12-20 17:06:57 362 1
80C51单片机的串口异步通信时,方式1时,SM2=0和SM2=1有什么区别?
注意,是区别,分别为0和1时具体的过程的区别是什么呢?谢谢各位大侠!~... 注意,是区别,分别为0和1时具体的过程的区别是什么呢?谢谢各位大侠!~ 展开
2011-06-05 14:32:30 438 3
如何利用OMRON CP1H串口进行Modbus-RTU通信
 
2018-11-18 18:31:24 477 0
如何利用OMRON CP1H串口进行Modbus-RTU通信
 
2017-01-04 16:07:30 392 1
基于LabVIEW的加速度传感器串口通信设计怎么做
 
2018-11-18 02:59:19 366 0
一台计算机上两个串口如何实现通信?
 
2018-03-13 13:48:56 435 1
一台计算机上两个串口如何实现通信
 
2013-04-23 05:14:16 540 3

12月突出贡献榜

推荐主页

最新话题