一種表用rs485收發數據的方法
【技術領域】
[0001]本發明涉及一種表用RS485收發數據的方法。
【背景技術】
[0002]RS-485是目前工業控制中使用最為廣泛的通信標準之一,利用2根數據線采用平衡式發送、差分式接收的方式實現通信。現在電表設計中,RS-485也是表計抄讀、設置數據的通訊方式之一,但是RS-485的2根數據線連接時是有極性區別的,如果工程人員不知道正確極性對于RS-485的意義,或者現場布線沒有用有標志的線區分2根數據線,都會造成通訊失敗的結果,這樣就會給現場的使用和布線帶來不便。
【發明內容】
[0003]基于以上原因,實現RS-485的無極性連接是很有必要的,這樣2根數據線可任意連接而不影響正常通訊。
[0004]如果通信系統使用UART作為數據的發送和接收,由于UART正確接收的起始位采用下降沿,如果起始位是上升沿的便無法正確接收,所以需使用無極性485芯片對信號進行處理才能實現RS-485的無極性連接。
[0005]如果使用軟件方式模擬UART通信的,可在使用的是有極性485芯片的情況下,捕捉信號的上升沿作為起始信號開始接收,然后將所有的接收信號取反,這樣就可以實現信號的無極性傳輸,且不需要增加額外的硬件開銷。
[0006]可見在不增加成本、更換硬件,而且軟件資源充足的情況下,通過軟件方式模擬UART通信實現RS-485的無極性連接是一種比較有優勢的設計方法。
[0007]一個完整的通訊字符由起始位、數據幀、可能的奇偶校驗位、停止位幾部分組成。當通信線上沒有數據傳送時,線上維持邏輯I的狀態,當開始傳送數據時,送出一個低電平作為起始位,當接收端采樣到傳輸線上的信號由邏輯I狀態變為邏輯O狀態時,啟動移位寄存器,開始采樣后面傳輸來的數據信號,一個通訊字符接收完后,開始接收下一個通訊字符,以此類推,將所有的通訊數據接收進來。
[0008]同樣的,發送數據時也是以這樣的數據格式將要發送的數據發送出去,只不過數據傳輸方向不一樣而已。
[0009](I)通過分析了 UART發送、接收的原理,這樣用普通I/O 口來模擬UART 口,只需要按照數據格式來接收、發送數據。如果RS-485的2根數據線反接,進來的數據信號反轉,原來的邏輯I狀態變為邏輯O狀態,原來的邏輯O狀態變為邏輯I狀態,所以發送、接收時只需要以相反的方式處理數據,這樣2根數據線正接或者反接都能解析出正確的信號,達到通訊成功的目的。
[0010](2)為了模擬UART發送、接收,選擇的接收I/O 口需要有外部中斷功能,并且是上升沿、下降沿都能觸發外部中斷,這樣上升沿或者下降沿的起始位都能正確接收。為了模擬不同波特率下數據位的不同位寬,需要一個定時器以位寬的時間間隔產生定時中斷,來解析數據信號。
【主權項】
1.一種表用RS485收發數據的方法,用于公用表與外部設備之間的通信效率的改進,其特征在于包括:不使用無極性RS485芯片進行數據收發處理。
2.根據權利要求1所述的表用RS485收發數據的方法,其特征在于進一步包括:通過表內部單片機的I/O端口來持續接收來自外部設備通信線上的數據信號。
【專利摘要】一個完整的通訊字符由起始位、數據幀、可能的奇偶校驗位、停止位幾部分組成。當通信線上沒有數據傳送時,線上維持邏輯1的狀態,當開始傳送數據時,送出一個低電平作為起始位,當接收端采樣到傳輸線上的信號由邏輯1狀態變為邏輯0狀態時,啟動移位寄存器,開始采樣后面傳輸來的數據信號,一個通訊字符接收完后,開始接收下一個通訊字符。
【IPC分類】G06F13-42
【公開號】CN104699651
【申請號】CN201410836975
【發明人】周俊, 姚徐旭
【申請人】華立儀表集團股份有限公司
【公開日】2015年6月10日
【申請日】2014年12月30日