歐陽明星,區(qū)志江,蔡培楠
(廣東松山職業(yè)技術(shù)學(xué)院 電氣工程系,廣東 韶關(guān)512126)
單片機(jī)體積小、功能強、使用簡單,被廣泛應(yīng)用于智能家用電器、工業(yè)控制、智能儀表等領(lǐng)域[1].作為大中專電子、通信、自動化等專業(yè)核心課程,單片機(jī)、ARM嵌入式具有舉足輕重的地位[2].在單片機(jī)、嵌入式課程的教學(xué)中,為了提高教學(xué)效果,可以采用“虛實結(jié)合”的教學(xué)手段,先使用虛擬仿真軟件完成原理設(shè)計與編程,以提高效率,再將程序下載到實物板件運行調(diào)試.隨著技術(shù)的發(fā)展,市場上出現(xiàn)了一些高性能單片機(jī),逐漸取代了傳統(tǒng)51單片機(jī),而32位ARM嵌入式處理器其性價比日益凸顯,越來越受到歡迎[3-5].學(xué)校實驗室硬件實驗箱的設(shè)計是固定和不可升級的,當(dāng)開設(shè)一門新型單片機(jī)或嵌入式處理器課程時,現(xiàn)有實驗箱無法滿足新課教學(xué)需求.市場上實驗箱硬件配置及設(shè)計理念大多大同小異,重新購置設(shè)備會導(dǎo)致資源浪費.筆者提出一種單平臺資源共享設(shè)計思路,通過快速更換不同內(nèi)核處理器實現(xiàn)現(xiàn)有實驗設(shè)備資源的再利用,使用者可以進(jìn)行二次開發(fā),設(shè)計新的CPU內(nèi)核板實現(xiàn)設(shè)備升級,實際使用效果較好.
(1)采用單一平臺設(shè)計,通過更換不同內(nèi)核處理器實現(xiàn)單平臺資源共享.將人機(jī)交互接口、信號轉(zhuǎn)換、實時時鐘、通信接口等資源和模塊設(shè)計在一個單板內(nèi),通過自定義的開放式統(tǒng)一接口與CPU內(nèi)核板連接,這樣更換不同類型CPU內(nèi)核板都可以共享該平臺的所有硬件資源.由于定義了開放式統(tǒng)一接口,用戶可自行設(shè)計CPU內(nèi)核板使用,實現(xiàn)系統(tǒng)升級.
(2)3.3~5 V寬電壓范圍,適應(yīng)不同電源內(nèi)核的CPU.考慮不同內(nèi)核CPU及面向的應(yīng)用不同,工作電壓不同,要求在3.3~5 V寬電壓范圍都能正常工作,無需手動電源轉(zhuǎn)換開關(guān).
(3)為便于教學(xué)中實現(xiàn)“虛實結(jié)合”,平臺設(shè)計盡量簡單,使用時接線少.使用者在Proteus虛擬仿真軟件進(jìn)行硬件連線設(shè)計并仿真,程序無需任何修改導(dǎo)入平臺能直接運行.
(4)平臺資源設(shè)計以實用為準(zhǔn),滿足從初學(xué)者到水平提升的梯度層級需求.
根據(jù)設(shè)計思路系統(tǒng)組成框圖見圖1,主要包含CPU內(nèi)核板、資源平臺主板兩部分[6].CPU內(nèi)核板為獨立板件,一種CPU內(nèi)核做成一塊獨立的板件,資源平臺主板作為母板,設(shè)計有數(shù)碼管、流水燈、LCD顯示器、A/D及D/A信號轉(zhuǎn)換電路、RTC實時時鐘、鍵盤、開放I/O接口等硬件資源.CPU開放所有I/O供用戶使用,CPU內(nèi)核板通過活動插座插入平臺主板構(gòu)成一個整體.
圖1 系統(tǒng)框圖
圖2 CPU內(nèi)核板設(shè)計
每種CPU內(nèi)核單獨設(shè)計一塊PCB板,自定義統(tǒng)一的電氣接口用活動插座插入平臺主板.CPU內(nèi)核板設(shè)計時要解決I/O端口資源分配、電源、復(fù)位等問題.CPU內(nèi)核板設(shè)計的重要的原則是盡量向用戶開放CPU所有I/O端口,同時又保證使用時接線少[7].將LCD液晶顯示、數(shù)碼管顯示、點陣顯示、D/A轉(zhuǎn)換等并行通信接線較多的部件在主板中預(yù)先接好線,通過短路帽與CPU的I/O端口相連接.當(dāng)需要使用這些資源時插上短路帽即可,去掉短路帽后則成為全開放I/O端口,可以自由使用.
CPU內(nèi)核板與主板之間定義了標(biāo)準(zhǔn)的電氣接口規(guī)范,該接口規(guī)范中包含了I/O端口、電源引腳、復(fù)位引腳、特殊功能引腳、程序下載接口等(見圖2).電源引腳分3.3V、5V兩種,以適應(yīng)不同CPU型號的電源要求.復(fù)位引腳同時接入高電平復(fù)位、低電平復(fù)位信號,特殊功能引腳依據(jù)芯片型號不同定義不同,其功能有PWM(脈寬)、INTx(外部中斷)、Tx(計數(shù)脈沖)等.電源電路、復(fù)位電路設(shè)計在主板上,3.3V、5V電源電壓同時接入CPU內(nèi)核板,再從CPU內(nèi)核板將電源饋入主板供給主板使用,以實現(xiàn)CPU板、主板3.3V、5V電源自行匹配,無需手工操作.復(fù)位電路設(shè)計手動復(fù)位功能,通過74AT04單反相器產(chǎn)生RESET、兩路不同極性復(fù)位電平,供CPU和主板硬件電路使用.結(jié)合教學(xué)實際,分別設(shè)計STC89C51、ATMEGA16、STM32F103、LPC2148等不同類型CPU內(nèi)核板.
資源共享平臺主板設(shè)計需要考慮兩個關(guān)鍵問題:(1)3.3 V~5 V供電自適應(yīng);(2)滿足教學(xué)中“虛實結(jié)合”要求.考慮不同內(nèi)核CPU的工作電壓不同,主板平臺上設(shè)計的所有硬件資源均可以自適應(yīng)工作在3.3 V~5 V,無需手動切換或外接電平轉(zhuǎn)換芯片.平臺主板設(shè)計的硬件電路大部分能在Proteus仿真軟件中仿真[8].
人機(jī)交互電路是實現(xiàn)人機(jī)通信的基礎(chǔ),包含輸出顯示、輸入設(shè)備.輸出顯示設(shè)計有8位數(shù)碼管顯示、1602字符型液晶顯示、128×64液晶顯示以及8×8點陣顯示.8位數(shù)碼管采用動態(tài)數(shù)碼顯示法,128×64選擇與KS0108/SED1565兼容的設(shè)計方案,以便在Proteus中仿真.由于這幾種顯示裝置并非同時使用,將數(shù)碼管、點陣的數(shù)據(jù)線通過74HC244總線驅(qū)動器隔離后,所有顯示器的數(shù)據(jù)線并聯(lián)在一起共享同一組CPU的I/O端口總線,通過切換開關(guān)切換控制使能顯示裝置,見圖3.
設(shè)計4×4矩陣鍵盤、4獨立開關(guān)按鍵兩種基本的輸入裝置.4×4矩陣鍵盤行、列線已預(yù)接至CPU內(nèi)核板的一組I/O端口,套上該組I/O短路帽即可使用,無需接線.
考慮一些早期單片機(jī)芯片沒有集成A/D轉(zhuǎn)換器,因此主板上設(shè)計了由TLC0831組成的串行A/D采樣電路.D/A轉(zhuǎn)換電路則設(shè)計串、并兩種接口.并行接口D/A轉(zhuǎn)換使用DAC0832實現(xiàn),以便滿足MCS-51單片機(jī)教學(xué)需求,使用接線最簡的直通法.串行接口D/A轉(zhuǎn)換器則采用了DAC7412 12 bit高精度轉(zhuǎn)換芯片,以滿足更高使用需求.信號轉(zhuǎn)換電路如見圖4.
圖3 顯示設(shè)計
圖5 USB通信電路
圖4 信號轉(zhuǎn)換電路
USB接口使用方便,應(yīng)用廣泛,一些單片機(jī)和32位嵌入式處理器內(nèi)部集成了USB協(xié)議接口,但大部分單片機(jī)則沒有集成該功能,可通過USB-UART橋接芯片實現(xiàn)單片機(jī)的USB通信及程序下載功能.CH340是一種常見的USB-UART橋接芯片,兼容USB2.0協(xié)議集,通過單片機(jī)的異步串行通信口即可實現(xiàn)與計算機(jī)的USB接口通信,設(shè)計見圖5[9].平臺還設(shè)計有RS-232、MAX485、CAN-BUS等通信接口電路.
設(shè)計兩種典型的實時時鐘電路見圖6,其中DS1302為SPI三線串行通信接口,內(nèi)置RTC時鐘萬年歷及31個字節(jié)的RAM,并帶備用電池涓流充電功能,PCF8563為I2C串口通訊接口,內(nèi)置時鐘萬年歷功能,兩個芯片共用一個備用紐扣電池保持時鐘信息,并由DS1302負(fù)責(zé)給鋰電池充電.3.5簡易信號源電路設(shè)計
圖6 RTC實時時鐘
圖7 信號發(fā)生電路
主板設(shè)計簡易信號源電路,可以提供PWM脈寬可調(diào)的矩形波信號、n分頻的方波信號(見圖7).TLC555時基電路組成脈寬可調(diào)信號源電路,輸出脈寬可調(diào)的矩形波,調(diào)節(jié)W1電位器可以改變矩形波脈沖寬度.圖7中4060組成÷N分頻脈沖源電路,4060包含一個振蕩器和一個214分頻器,由振蕩器產(chǎn)生一個32 k的時鐘頻率經(jīng)過分頻器后輸出24~214分頻脈沖,此處只取24、26、28、214分頻信號輸出.
除此之外,主板還設(shè)計有繼電器驅(qū)動、紅外收發(fā)、無線通信、藍(lán)牙接口、溫濕度測量等接口和電路.
傳統(tǒng)單片機(jī)等嵌入式課程教學(xué)中大多將理論與實踐分開進(jìn)行,先導(dǎo)入大量原理,再動手實驗,學(xué)生理解困難,學(xué)習(xí)枯燥乏味,自然叫苦不迭.而實驗條件的限制,實驗教學(xué)多為演示性實驗和驗證性實驗,缺乏創(chuàng)新性實驗,學(xué)生做實驗室只是機(jī)械連線,沒有形成系統(tǒng)化的設(shè)計思維,創(chuàng)造性和學(xué)習(xí)的興趣被嚴(yán)重挫傷[10-11].
現(xiàn)代職業(yè)技術(shù)教學(xué)理論倡導(dǎo)基于行動導(dǎo)向的教學(xué)法,能激發(fā)學(xué)生學(xué)習(xí)興趣,教學(xué)模式遵循“做中學(xué)、學(xué)中做”,探索式的學(xué)習(xí)方法極大提高了學(xué)生自主學(xué)習(xí)熱情,有利于創(chuàng)新性人才培養(yǎng).單片機(jī)等嵌入式設(shè)計中,包含硬件原理和軟件編程兩個部分.在創(chuàng)新性人才培養(yǎng)中,開放性實驗也是重要的舉措之一.現(xiàn)代教學(xué)日益注重實開放性實驗.開放性實驗教學(xué)是一種新興的實驗教學(xué)方式,實踐已經(jīng)證明對增強大學(xué)生的動手能力、激發(fā)學(xué)生的創(chuàng)新意識有著傳統(tǒng)教學(xué)方式不可比擬的優(yōu)勢[12-13].
Proteus是一款從原理圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真EDA開發(fā)工具,能一鍵切換到PCB設(shè)計,實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計,是一款將電路仿真、虛擬模型仿真和PCB設(shè)計三合一的設(shè)計平臺[14-15].與其他仿真軟件不同的是它除了能仿真基本的數(shù)字模擬電路外,還能模擬單片機(jī)、ARM嵌入式程序運行,以及仿真液晶顯示、SD卡讀取、計算機(jī)通信等,為開放性實驗提供了強有力支撐.Proteus軟件最新的版本是8.7,支持IOT(Internet of Things)物聯(lián)網(wǎng)Arduino云控制平臺,集成TCP/IP協(xié)議集仿真,實現(xiàn)物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的快速開發(fā).更為重要的是還支持串口(COMPIM)、以太網(wǎng)(EPIM)等物理模型,可實現(xiàn)虛擬仿真電路與外部實際電路的雙向串行通信.
依本文設(shè)計思路制作的實物及應(yīng)用見圖8,(a)為實物全貌,(b)為實物與Proteus仿真的單片機(jī)進(jìn)行虛——實連接串口通信.除可以完成一般性的功能驗證性實驗外,還可以完成如可變流水燈、數(shù)控電源、密碼鎖、時鐘萬年歷等綜合性、開放性課題項目.這些實驗項目均能可以在Proteus中仿真運行,學(xué)生利用仿真軟件在宿舍畫圖仿真運行,再去實驗室實驗箱驗證,突破了時間、空間、內(nèi)容的限制.
圖8 實驗裝置實物及應(yīng)用
筆者提出了一種多內(nèi)核共享單平臺實驗裝置設(shè)計思路,解決了單片機(jī)、嵌入式課程學(xué)習(xí)中實驗資源共享的問題,通過多內(nèi)核共享單平臺資源,經(jīng)濟(jì)實用,節(jié)約成本.教學(xué)中結(jié)合虛擬仿真手段,可以提高學(xué)生學(xué)習(xí)興趣和熱情,使實驗不受時間、空間限制,便于實現(xiàn)開放性教學(xué),在廣東松山職業(yè)技術(shù)學(xué)院小批量生產(chǎn)試用效果良好.