技術頻道

      串口地址轉換的實現

        串口多機通信,就是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的發送區。

        本文介紹的串口地址轉換的硬件方法和單片機代碼,對不同地址之間的串口通信具有一定的使用價值。地址轉換器的優點在于使用簡單方便,不足之處在于只能夠轉換地址而沒有對數據位、停止位、校驗位進行轉換,而且對于不常見的地址的轉換還需要定做。如果要實現功能全面的地址等各種格式的全面轉換,還是要用計算機加上專門的地址轉換軟件,通過對計算機的兩個串口進行地址等格式的設置,而兩個串口在計算機內部進行數據透明傳輸。我們已經以另外文章《串口地址轉換的純軟件實現》予以了介紹。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 无码精品人妻一区二区三区影院| 久久99精品一区二区三区| 精品一区二区三区免费观看| 国产午夜三级一区二区三| 国产日韩一区二区三区在线播放| 狠狠做深爱婷婷综合一区 | 日韩精品一区二区三区中文精品| 秋霞鲁丝片一区二区三区| 在线成人一区二区| 精品无码一区在线观看| 人妻免费一区二区三区最新| 国产一区二区三区露脸| 日本精品视频一区二区| 日本高清一区二区三区| 日本在线视频一区二区| 亚洲一区二区三区在线观看蜜桃| 国产在线一区二区三区| 日韩一本之道一区中文字幕| 久久久人妻精品无码一区| 岛国精品一区免费视频在线观看| 精彩视频一区二区三区| 欧洲精品一区二区三区在线观看 | 无码精品久久一区二区三区| 久久精品无码一区二区三区不卡 | 美女AV一区二区三区| 精品一区二区三区免费毛片| 国产成人av一区二区三区在线观看| 亚洲精品无码一区二区| 精品国产免费一区二区| 国产福利一区视频| 一区二区三区视频在线播放| 激情爆乳一区二区三区| 久久精品国产一区二区| 亚洲AV无码一区二区三区DV | 国产亚洲福利精品一区二区 | 国产福利酱国产一区二区| 国产肥熟女视频一区二区三区 | 99久久精品国产一区二区成人| 亚洲狠狠狠一区二区三区| 国内精品一区二区三区最新| 无码AV一区二区三区无码|