電子臺(tái)秤數(shù)據(jù)通訊RS485遠(yuǎn)程傳輸,RS232到RS485的接口轉(zhuǎn)換器需要用RTS信號(hào)來控制發(fā)送和接收狀態(tài)切換,由于PC機(jī)很難像單片機(jī)那樣地判斷zui后一位從移位寄存器發(fā)出去了(單片機(jī)對(duì)有的UART可以用中斷,或者笨笨地定時(shí)+查詢標(biāo)志等方法),所以經(jīng)常發(fā)生下位機(jī)收不好zui后一個(gè)字節(jié)或者上位機(jī)收不好*各字節(jié)的情況。有人采取上位機(jī)正常報(bào)文后面加無用字符(比如0xFF)的辦法來湊合。 電子臺(tái)秤稱重?cái)?shù)據(jù)通訊有RS232到RS485的收發(fā)自動(dòng)切換的轉(zhuǎn)接器,但它內(nèi)部其實(shí)是用單穩(wěn)態(tài)觸發(fā)器來實(shí)現(xiàn)的,為了適應(yīng)不同波特率,切換仍然有一個(gè)延遲,波特率較高的時(shí)候下位機(jī)回答太快仍然有可能*個(gè)字節(jié)出錯(cuò)。 所說的20ms只是一個(gè)舉例,根據(jù)波特率等情況當(dāng)然可以適當(dāng)改變。但是,正規(guī)的RS485規(guī)約應(yīng)該要規(guī)定這個(gè)幀間空閑間隔的(比如IEC870-5規(guī)定是33bit)。 實(shí)際通信的實(shí)時(shí)性主要由輪詢的間隔以及超時(shí)的處理來決定,附加幾毫秒的延時(shí)并不很重要。實(shí)際使用RS485通信zui常遇到倒就是收發(fā)切換的問題,要想解決好,一是上位機(jī)從發(fā)到收的切換要盡量快(盡可能使用UART硬件自動(dòng)控制RTS、發(fā)送完成中斷或者定時(shí)),二是下位機(jī)要略位"寬容"一點(diǎn)。 |