王正宇
【摘要】論文以STM32單片機為開關量輸入輸出系統(tǒng)設計的核心,設計了一種采用工業(yè)以太網通信和RS485通信接口技術的多路開關量控制主機板,以太網芯片采用WIZnet公司生產的W5500芯片,主從機通過485進行數據交互,主機起到了上位機與各個從機數據交互的橋梁作用:上位機與主機通過工業(yè)以太網的形式進行數據交互,主機與各個從機的數據交互通過RS485通信方式實現。上位機能夠顯示從機采集到的輸入信號,分配相應的開關量輸出信號給各個從機。
【關鍵詞】單片機;開關量;數據采集;上位機
【中圖分類號】G644.5 【文獻標識碼】A 【文章編號】2026-5328(2022)04--02
1? 引言
多路開關量輸入輸出系統(tǒng)以總線通信方式提供來自工業(yè)現場的真實可靠數據,這樣不僅可以提高設備的安全運行水平,也能提高維護人員的工作效率,降低生產成本。論文設計的開關量輸入輸出系統(tǒng)具有網絡化、系統(tǒng)化和開放式等特點。針對開關量控制問題,該系統(tǒng)在工業(yè)領域具有良好的應用前景。
2? 開關量輸入輸出系統(tǒng)的硬件設計
2.1? 系統(tǒng)總體方案
在系統(tǒng)設計中,上位機與主機通過工業(yè)以太網的形式進行數據交互,主機與各個從機的數據交互通過RS485通信方式實現,上位機需要顯示出從機采集到的輸入信號,并分配相應的開關量輸出信號給各個從機。系統(tǒng)整體設計方案如圖1所示。
2.2? ?系統(tǒng)硬件模塊設計
本次設計以STM32單片機為開關量輸入輸出系統(tǒng)的設計核心,系統(tǒng)的硬件架構如圖2所示[1,2]。
電源模塊供電電壓為3.3V,但是市場上某些電池的電壓不能夠滿足系統(tǒng)所需供電要求,故考慮選擇XL2596降壓型直流電源變換器芯片,設計降壓穩(wěn)壓電路給整個電路提供合適的電壓。XL25963A電流輸出降壓開關型集成穩(wěn)壓電路由基準穩(wěn)壓器(1.23V)、固定頻率振蕩器(150KHz)以及有效的保護電路等組成,保護電路中設有限流、熱關斷電路等。電源電路的設計如圖3所示。
485電路采用MAX485芯片作為RS485通信電路的低功率收發(fā)器,主要構成只有兩部分:一個驅動器和一個收發(fā)器。目前,網絡接口電路以傳輸差分信號傳輸為主。依靠隔離變壓器隔離電壓,來配合外部網絡與物理網卡直接的連接。這樣做的好處有:可以消除可能在網絡線上存在的共模信號,也能夠大大提升網絡上數據傳輸的安全性,也確保了網卡不會被損壞,即使外部網絡產生了線路不能承受的電壓,可以通過網絡變壓器將開關量輸入輸出信號連接到網絡接口,大部分網絡接口都是RJ45,考慮到輸入輸出信號采集的準確性,使用自帶網絡濾波功能的HY951180A[3,4]。具體網絡接口電路如下圖4所示:
3? 系統(tǒng)的軟件設計
本設計主要采用以STM32系列單片機為核心的主機板,通過W5500和RS485接口進行通信,完成現場從機與主機,主機與上位機的數據采集。上位機采用工業(yè)以太網的形式和主機進行數據交互。主機作為“中間商”,能夠讓上位機與現場的各個從機進行數據交互,上位機得到現場從機的輸入信號通過主機轉換為輸出信號。通過VS設計的上位機界面能夠更好的實現該功能。圖5為程序整體運行框圖。
3.1? 上位機界面設計
上位機界面的軟件開發(fā)平臺是VS 2008,設計了一個簡易的操作界面,包括連接端口、設備IP地址、端口號連接狀態(tài)和數據操作。連接狀態(tài)用來判斷系統(tǒng)是否正常連接,因為初步設計為八路開關量,所以數據操作部分輸入輸出的值域0-255,即輸入輸出讀取的值得范圍。上位機界面I/O數據采集如圖6所示:
3.2? 主機與從機的數據通信設計
主機初始化485:主機發(fā)出控制信號給第一個從機,從機1初始化485,并通過485發(fā)出從機1的設備類型0x181(假設從機1為輸入模塊,設備類型為0x181)到485總線上,主機接收到第一個從機的設備類型信號后,給第一個從機分配從機地址0x141,即主機通過485發(fā)出0x141的數據到485總線上,因為這時從機中只有從機1初始化了485,所以只有從機1可以接收到0x141的信息,從機1接收到該信息并保存下來,并把0x141當作自己的地址信息。后面主機發(fā)送信息都是“地址+命令”的格式發(fā)送,從機1在后面接收信息時需要先判斷地址信息是不是0x141,如果是則從機1正常執(zhí)行后面的命令,如果不是則不執(zhí)行該命令,到此從機1的初始化完成;從機1發(fā)送控制輸出信號給第二個從機,直到全部從機分配地址完成[5]。
從機地址設置好后,主機給從機1發(fā)送讀取從機輸入狀態(tài)的命令即“地址+讀取命令”,從機1接收到命令后把自己的輸入狀態(tài)反饋給主機,信息格式為“自己的地址+IO狀態(tài)信息”,主機接到該信息后把從機1的狀態(tài)信息放到一個數據緩沖區(qū),供上位機讀取;主機再給從機2發(fā)送命令“地址+輸出命令”,從機2接到該信息后立刻反饋自己的狀態(tài)格式為“自己的地址+從機狀態(tài)”,然后再去執(zhí)行主機發(fā)送來的輸出命令。主機與從機數據交互過程如圖7所示:
3.3? 主機與上位機的數據通信設計
上位機和主機過MODBUS/TCP協(xié)議進行數據通信MODBUS/TCP協(xié)議具體運行過程如下:用戶客戶端先發(fā)出所需要執(zhí)行命令,請求服務器發(fā)送數據傳輸,服務器端口接到了來自客戶端的請求命令,MODBUS服務器端開始響應來自MODBUS客戶端發(fā)來的指令,準備施行數據的傳輸,最后客戶端確認收到來自MODBUS服務器端的數據。
4? 總結
論文所設計的開關量輸入輸出系統(tǒng)以單片機核心,加上通信模塊和外圍電路形成了一個有機的整體。調試結果證明該系統(tǒng)實現了預期的各項功能,能夠在工業(yè)現場投入使用,且運行較為可靠,尤其在工控行業(yè)具有一定的應用前景。
參考文獻:
梅麗鳳等. 單片機原理及其接口技術[M]. 北京:清華大學出版社,2008
傅揚烈. 單片機原理與應用教程[M].北京:電子工業(yè)出版社,2002
周立功,夏宇聞. 單片機與CPLD綜合應用技術[M]. 北京:北京航空航天大學出版社,2003
林立,張俊亮.單片機原理及應用[M].北京:電子工業(yè)出版社,2014,8,26-27.
Simon Haykin,Machael Moher,鄭寶玉.現代無線通信[M].北京:電子工業(yè)出版社, 2006.