广州菱控自动化科技有限公司
主营:欧姆龙,三菱,安川,Pro-face
首页 > 解决方案 > 网络通讯_现场总线 > 串口地址转换的实现
行业类别
全部 航空航天 新能源 冶金 石油 石化 化工 汽车 建材 包装 造纸印刷 纺织印染 机械 机床 木工 矿业 塑胶 交通 铁路 机场 港口 仓储 物流 能源 电力 输配电 水利 环保水处理 电子 食品饮料 制药医疗 烟草 电梯 网络通讯 市政 商业 楼宇 安防 锅炉供暖 制冷 金融保险 邮政 广电 军工 机器人 其它
产品类别
全部 PLC 变频器 伺服 DCS 触摸屏 传感器 机器视觉 仪器仪表 工业以太网 现场总线 工控机 嵌入式 数据采集 软件 低压电器 数传 电源 数控 机柜箱体 工具 单片机 流体 工业安全 安防 媒体 其它

串口地址转换的实现

发布日期:2025/7/3

 

  串口多机通信,就是RS-232/RS-485多机通信,要求通信的下位机必须带地址。通信时由上位机先发送某个下位机的地址,位于同一个网络中的所有下位机都同时读取这个地址的值,然后与自己的地址进行比较,如果地址相同则接收后面的数据,如果地址不同则不读取后面的数据。某些情况下,下位机也可以主动向上位机发送数据,但是必须按照预先设置的格式在数据前面加上下位机的地址,这样上位机才可以知道是哪一个下位机发来的数据。可是在许多情况下,下位机没有设置地址的功能,或者地址的格式不同,这就必须进行串口地址的转换。本文介绍了如何实现串口地址的转换。

 

 

 

  如果上位机与多个下位机之间需要通信,但是下位机却不带地址。串口地址转换器的原理就是利用转换器两个串口,称为上位机串口和下位机串口,自动添加人为设置的地址。地址哦处理包括两部分:1、将上位机串口接收到的数据去掉地址后从下位机串口发送出去;2、将下位机串口接收到的数据加上地址后从上位机串口发送出去。

 

 

 

 

 

 

 

 

 

 

    DIZ485串口地址转换器用于实现不同地址的RS-232/RS-485口的通信转换,纯硬件跳线设置,无需任何软件设置。串口地址转换器的外形为DB-9/DB-9转接盒大小,如图的产品左边为上位机的RS-232以及RS-485口,右边为下位机的RS-232以及RS-485口,上边为波特率设置和地址设置的跳线,下面为5V电源接线端子。DIZ485通过跳线J2、J1、J0设置波特率,通过跳线K2、K1、K0设置地址。见下表。0-断开,1-短路。注意每次更改跳线新设置后必须重新加电源才能生效。

 

 串口通信波特率设置

 

 

 

 

地址设置

J2

J1

J0

 波特率

K2

K1

 K0

 地址

 0

 0

 0

 1200

 0

 0

 0

   0

 0

 0

 1

 2400

 0

 0

 1

   1

 0

 1

 0

 4800

 0

 1

 0

   2

 0

 1

 1

 9600

 0

 1

 1

   3

 1

 0

 0

19200

 1

 0

 0

   4

 1

 0

 1

38400

 1

 0

 1

   5

 1

 1

 0

57600

 1

 1

 0

   6

 1

 1

 1

115200

 1

 1

 1

   7

 DIZ485 使用非常方便。首先根据用户通信程序的波特率进行波特率设置,比如9600bps,则将J2断开、J1短接、J0短接。然后设置本产品的地址,比如设置地址为1,则将K2断开、K1断开、K0短接。

左侧的A1、B1的RS-485以及DB-9孔RS-232称为“主串口”;右侧A2、B2的RS-485以及DB-9针RS-232称为“从串口”。通信规则:主串口数据=地址码+从串口数据    比如:如果主串口收到 ###1:1234567,那么地址为1的产品的从串口发送出 1234567(地址不是1的产品的从串口不发送任何数据),就是去帧头。地址码就是在K2、K1、K0跳线设置值的前面加3个井号(###)和后面加一个冒号(:)的英文字符。如果地址为1的产品的从串口收到abcdefg ,则主串口发送出###1:abcdefg  就是加帧头。

 在同一个RS-232/RS-485总线中可以同时接入一般最多8个DIZ485产品,定制最多可以到32个。使用时将这8个产品的地址分别设置为0、1、2、……、7不同的值。将所有DIZ485产品的主串口共同接入到一个总线并接到上位机的RS-232或RS-485口。DIZ485接受定制开发。超过8个地址要求的可以定制扩展地址编码,最多可以达到32个。默认地址为0、1、2、3、4、5、6、7、8、9、a、b、……、t、u、v。

 

 

 如果上位机要向某个下位机(比如地址为1的DIZ485的从机)发送数据,只需要在数据前面加上###1:即可。地址为1的DIZ485发送给上位机的数据都是加上了###1:再发送给主机的;地址为2的DIZ485发送给上位机的数据都是加上了###2:再发送给主机的,都带有地址,所以主机可以识别从哪个下位机(即从机)发来的。

 

地址转换器的内部有一个带双串口的单片机。单片机自动完成两个串口之间的数据交换。单片机程序用C语言编写,核心功能就是先将两个串口UART1和UART2根据跳线设置的状态进行地址等初始化设置,然后随时将UART1接收的数据去掉地址帧头之后立即送到UART2的发送区、以及将UART2接收的数据加上地址帧头后立即送到UART1的发送区。

本文介绍的串口地址转换的硬件方法和单片机代码,对不同地址之间的串口通信具有一定的使用价值。地址转换器的优点在于使用简单方便,不足之处在于只能够转换地址而没有对数据位、停止位、校验位进行转换,而且对于不常见的地址的转换还需要定做。如果要实现功能全面的地址等各种格式的全面转换,还是要用计算机加上专门的地址转换软件,通过对计算机的两个串口进行地址等格式的设置,而两个串口在计算机内部进行数据透明传输。我们已经以另外文章《串口地址转换的纯软件实现》予以了介绍。


销售热线

销售微信