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