RS485總線接口電路及設計
2 軟件設計
2.1 總體設計
測試儀的軟件開發(fā)環(huán)境采用的是Keil C,所有代碼采用C語言編寫。為了方便程序調(diào)試和提高可靠性,軟件采用模塊化結(jié)構設計,主要由初始化程序、主程序、子程序、中斷服務程序等組成。單片機上電后即開始循環(huán)執(zhí)行溫濕度、照度測量程序,并以設定的時間間隔在數(shù)碼管上輪流動態(tài)顯示;按鍵切換和通信功能部分由于使用頻率相對較低,為降低設備功耗,其程序以中斷響應的方式執(zhí)行。在此要注意中斷優(yōu)先級的設置:按鍵中斷優(yōu)先級應高于串口中斷,否則將無法進行顯示切換。主程序流程如圖6所示。
2.2 傳感器驅(qū)動程序
本系統(tǒng)采用的傳感器均為集成數(shù)字芯片且都具有I2C總線接口,故其驅(qū)動程序的編寫要嚴格遵循I2C總線的時序。主程序為每一個參數(shù)開辟了一個8位的存儲空間,傳感器將采集到的數(shù)據(jù)經(jīng)SDA引腳串行輸出,驅(qū)動程序?qū)DA線上輸出的數(shù)據(jù)進行串并轉(zhuǎn)換,并存儲到相應空間中,以方便其他功能程序調(diào)用。以下是照度傳感器數(shù)據(jù)采集程序的部分代碼。
(1)TSL2561初始化
2.3 RS485通信程序
測試儀與上位機的通信采用RS485協(xié)議。串口參數(shù)為:波特率9600,數(shù)據(jù)位8位,1個校驗位,1個停止位。其數(shù)據(jù)格式如圖7所示。
由于RS485總線協(xié)議與RS232串口協(xié)議只是接口電平上有區(qū)別,其軟件編程完全按照串口通信協(xié)議進行,此處不再詳述。
評論