通訊模塊:RS485的通訊是在小板上實(shí)現(xiàn)的,其通訊電路由UART接口和RS485驅(qū)動(dòng)電路組成UART接口負(fù)責(zé)對(duì)接收和發(fā)送的數(shù)據(jù)進(jìn)行處理,如:添加奇偶校驗(yàn)位,起始位,結(jié)束位等。RS485驅(qū)動(dòng)電路負(fù)責(zé)把UART發(fā)送的信號(hào)轉(zhuǎn)換為RS485的電氣特性的電平,把接收到的信號(hào)從RS485標(biāo)準(zhǔn)轉(zhuǎn)換為0~5V的標(biāo)準(zhǔn)數(shù)字信號(hào)。本文采用MAX485芯片實(shí)現(xiàn)RS485電氣特性的電平與0~5V的標(biāo)準(zhǔn)數(shù)字信號(hào)電平之間的轉(zhuǎn)換。在電路圖中,MAX485芯片內(nèi)部有一個(gè)接收器和一個(gè)發(fā)送器組成,接收器通過(guò)A、B兩端來(lái)接收由RS485總線(xiàn)傳輸?shù)碾娖叫盘?hào),RO為接收器輸出端,通過(guò)光禍接單片機(jī)的RXD引腳;發(fā)送器通過(guò)DI引腳接收到由單片機(jī)傳送的數(shù)據(jù)后由A、B發(fā)送到RS485總線(xiàn)上,Dl為發(fā)送器輸入端,通過(guò)光耦接單片機(jī)的TXD引腳;/RE、DE引腳分別是接收器、發(fā)送器的使能端。由于MAX485芯片是半雙工工作,故/RE、DE可通過(guò)單片機(jī)的一個(gè)I/O口控制。通訊電路設(shè)計(jì)如圖所示:
當(dāng)接收器輸入端(A、B)開(kāi)路或總線(xiàn)浮空(總線(xiàn)上所有驅(qū)動(dòng)器輸出為高阻)時(shí),若接收器輸出低電平,則UART(通用異步收發(fā)器)可能認(rèn)為是通信幀的“起始”而引起工作不正常,克服此問(wèn)題的方法是在A端上拉電阻,再B端下拉電阻,從而保證A、B開(kāi)路或浮空時(shí),輸出處于確定狀態(tài)(輸出高電平)。