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