彭亮
【摘 要】針對單片機實訓教學存在的模塊擴展困難、不能模擬復雜控制對象、實訓設備容易損壞維護困難等問題,文章提出了一種基于仿真技術的新型單片機實訓教學裝置,該實訓教學裝置能模擬復雜工作場景,具備使用方便、擴展性強、使用損耗小、維護容易等優點。
【關鍵詞】單片機;仿真;實訓教學;Adobe AIR
中圖分類號: G642;TP368.1-4 文獻標識碼: A 文章編號: 2095-2457(2018)19-0180-002
DOI:10.19694/j.cnki.issn2095-2457.2018.19.080
A Single-chip Computer Practical Training and Teaching Equipment Based on Simulation Technology
PENG Liang
(Wuhan Railway Vocational College of Technology, Hubei Wuhan 430205, China)
【Abstract】In order to solve the problems during the single-chip computer practical training and teaching, such as the training teaching equipment is difficult to expand, cannot simulate complex control objects and tend to be damaged and hardly maintained. New practical training teaching equipment based on the simulation technology is proposed in this paper. The practical training teaching equipment can simulate the complex work scene, and it has many advantages: easy to use, easy to expand, small use loss, easy to maintain and so on.
【Key words】Single-chip computer;Simulation;Training teaching;Adobe AIR
0 引言
目前單片機實訓教學通常采用兩種方式。
第一種是采用單片機實驗箱進行實訓。這種實訓方式的優點是:操作貼近實際工作過程,控制對象模塊化、節省實訓時間,缺點是:模塊數量有限,擴展困難;使用損耗大,維護困難;不能模擬復雜控制對象。
另外一種實訓方式是采用Protues仿真軟件進行實訓。這種實訓方式的優點是:虛擬元件自由搭配、擴展性強;仿真操作,使用過程沒有損耗。缺點有:純軟件操作,與實際工作流程區別大,同樣也不能模擬較復雜的工作場景。
針對這兩種實訓教學方式的不足,本文介紹一種基于仿真技術的單片機實訓教學裝置。利用這種裝置開展實訓,能展示復雜的工作場景,并且采用實物單片機進行控制,具有以上教學方式的優點,也避免了它們的缺點。
1 系統方案
基于仿真技術的單片機實訓教學裝置包含單片機、仿真器和仿真實訓模塊三個部分。系統基本工作原理如下:
(1)單片機運行著控制程序,通過輸入輸出端子控制仿真模塊中的虛擬對象。
(2)仿真器是單片機和仿真軟件之間的一道橋梁,使得單片機能夠對虛擬對象進行控制。
(3)仿真實訓模塊采用生動的動畫效果,模擬實際工作場景,接受單片機程序控制。
2 仿真器設計
仿真器采用STC89C52單片機系統板作為控制器,對外提供8個數字量輸入和8個數字量輸出端子。運行過程中,仿真器不斷采集外部單片機程序產生的控制信號,通過串行口轉發送給仿真實訓模塊,同時接收實訓模塊的輸出信號轉發給單片機。
3 仿真實訓模塊設計
系統仿真軟件采用Adobe AIR構建,Adode AIR是Adobe公司開發的基于Flash動畫技術的跨平臺應用解決方案,通過Animate動畫軟件可以輕松制作出具有豐富互動效果的應用并打包為AIR格式發布到主流平臺。
3.1 通訊功能實現
仿真實訓模塊運行過程中通過電腦串行口與仿真器進行通訊,但是Adobe AIR本身沒有提供串行口的訪問功能。為了簡化程序設計,仿真實訓模塊利用serproxy工具將電腦串行口映射為本地TCP端口,實現與仿真器的通訊。
serproxy是一款免費串口轉TCP工具,在運行仿真軟件前,首先要運行它。serproxy會根據配置文件監聽處理TCP連接請求。
配置文件中的default settings部分為打開串行口的參數:(1)comm_baud為波特率;(2)comm_databits為數據位位數;(3)comm_stopbits為停止位位數;(4)comm_parity為奇偶表示,none表示不進行奇偶校驗。
timeout為TCP端口超時時間,以秒為單位,如果超過這個時間沒有接收到來自TCP端口的任何數據,serproxy會斷開連接,并關閉對應串行口。
ports setting部分為串口與TCP端口映射關系設定,net_port#里的數字為串口號,等號后面的數字表示該串口對應的TCP端口。
當監聽到來自配置文件中所包含的某個TCP端口的連接請求時,serporxy會按照設定參數打開對應串行口,并在串行口和TCP端口之間進行相互數據轉發。通過這種方式,仿真軟件只需要連接串行口對應的TCP端口就能實現和仿真器的相互通訊,從而減小了編程難度。
3.2 實訓模塊結構
不同的實訓模塊所呈現的模擬場景是不一樣的,但底層代碼的結構基本相同,主要包含三個組成部分:
(1)通訊部分:通訊部分負責實訓模塊與仿真器的通訊,用于接收由仿真器所采集的單片機程序控制信號,同時將虛擬控制對象的狀態通過仿真器傳遞給單片機。
(2)數據庫部分:數據庫部分作為一個抽象層,將虛擬控制對象的畫面呈現和狀態分離開來,這種設計降低軟件各個部分耦合程度,加快了模塊開發速度。
(3)畫面呈現部分:畫面呈現部分利用了動畫技術的優勢,能夠活靈活現的呈現各種復雜的工作場景。
3.3 水塔水位控制實訓模塊
接下來以水塔水位控制實訓模塊為例,介紹模塊運行機制。
水塔水位控制實訓模塊模擬了一個水塔水位系統,包含若干控制對象:
(1)儲水罐,用來表示水位高低,對應數據變量water_level,變量類型為Number;
(2)進水電磁閥,用來控制進水管,對應數據變量inlet_valve,變量類型為Boolean,對應仿真器端子Y0;
(3)高水位傳感器,用來檢測水位過高,對應數據變量high_level,變量類型為Boolean,對應仿真器端子X1;
(4)低水位傳感器,用來檢測水位過低,對應數據變量low_level,變量類型為Boolean,對應仿真器端子X0;
實訓模塊通過通訊部分來實現數據庫變量和單片機控制信號的同步,例如:單片機通過P1.0引腳向仿真器的Y0端子發送低電平,經仿真器采集通過串行口傳送給電腦,再由serproxy轉發至TCP端口,從而被連接到TCP端口上的實訓模塊所接收并存儲到變量inlet_valve中。
實訓模塊的數據庫變量和虛擬控制對象的狀態是相互綁定的,例如:inlet_valve變量對應的控制對象為電磁閥,當單片機發送的低電平被接收存儲到數據庫中后,電磁閥的狀態會自動進行更新,由紅色變為綠色,表示電磁閥已經打開。
實訓模塊通過以上機制來實現單片機控制信號和虛擬控制對象相互影響。當單片機程序產生的控制信號變化時,虛擬控制對象的狀態會及時發生改變。與之相應,當虛擬控制對象的狀態發生變化時,單片機程序也會立即做出反應。
4 總結
本文介紹的基于仿真技術的單片機實訓教學裝置,采用基于Flash動畫技術構建的實訓模塊來模擬工作場景中的控制對象,并利用仿真器作為中間橋梁,連接運行控制程序的單片機,使得學生能夠實時直觀的觀察程序運行效果,是一種實用的實訓教學裝置。
【參考文獻】
[1]魏冰冰,朱嘉琪,李樂桐,王艷陽.基于單片機與Scratch的動畫互動平臺系統設計[J].儀器儀表用戶,2018,25(03):34-37.
[2]Russell Chun.Adobe Animate CC 2017中文版經典教程 [M].北京:人民郵電出版社,2017.
[3]熊曉松,董逸君.Protues仿真軟件在單片機原理課程中的應用[J].科教導刊(上旬刊),2017(04):127-128.