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