基于ARM Cortex-M3的MODBUS協(xié)議實現(xiàn)及其應用
在MODBUS數(shù)據(jù)幀中,功能碼是指主節(jié)點對從節(jié)點的請求操作類型,常用的MODBUS功能碼及其功能如表2所示。本文引用地址:http://www.ex-cimer.com/article/150476.htm
MODBUS RTU采用循環(huán)冗余校驗碼CRC(Cyclic Redundancy Check)是一種被廣泛采用的多項式編碼,編碼簡單且誤判概率很低,在串行通信、以太網(wǎng)、MPEG解碼等通信領域中得到了廣泛應用。在通信過程中,發(fā)送方用待發(fā)送數(shù)據(jù)除以一個收發(fā)雙方約定的生成多項式,將得到余數(shù)作為CRC校驗多項式,附加在待發(fā)送數(shù)據(jù)尾部作為一個整體發(fā)送給接收方。接收方將收到的數(shù)據(jù)同樣除以生成多項式,若余數(shù)為零剛傳輸正常,若余數(shù)不為零則傳輸出錯。
2 電路連接及硬件參數(shù)
在無損探傷試驗儀中,選用基于ARM Cortex-M3內(nèi)核的STM32F103ZET6微控制器作為處理核心,而變頻器采用了煙臺惠豐公司的F2000-G矢量變頻酪。STM32F103ZET6通過基于MAX3485的RS485鏈路與F2000-G相連,按照MODBUS協(xié)議與之通信,實現(xiàn)變頻調(diào)速的控制功能。RS485接口電路如圖2所示,STM32F103ZET6的USART3的Uart3Rx、Uart3Tx連接到MAX3485的RO、DI以進行RS232的數(shù)據(jù)收發(fā);STM32F103ZET6的GPI01以I /O模式與MAX3485的接收使能端RE、發(fā)送使能端DE相連,對RS485半雙工總線的通信方向進行統(tǒng)一控制;而MAX3485的差分信號端A、B則通過插座與F2000-G相連,同時為保證通信質(zhì)量,消除總線上的信號反射,需在RS485網(wǎng)絡終端的差分總線間串聯(lián)50 Ω的電阻R1。
評論