圖1:將SOC技術(shù)有機融入單片機技術(shù)教學的教材 |
從目前單片機教學內(nèi)容和實驗方法來看,確實已與單片機本身的歷史一樣久遠了。不難發(fā)現(xiàn),現(xiàn)在高校中單片機教學的絕大多數(shù)內(nèi)容仍然停留在51單片機最初進入課堂的那個年代(1984前后),例如許多現(xiàn)在看來早已沒有什么實用價值的內(nèi)容卻逢課必講,甚至是詳述,如0809、0832、8255、8155、8279,以及一些過時的存儲器等器件及接口技術(shù),這導致了目前的單片機課程中學到的知識幾乎很難用于對付現(xiàn)在的大學生電子設計競賽中大多數(shù)賽題,當然更加無法對付在未來工程實踐中出現(xiàn)的諸多問題了。此外,從單片機技術(shù)引入課堂至此,一直作為一門獨立的,孤立的專業(yè)基礎課來對待,從而將其與后來不斷涌現(xiàn)的許多新技術(shù)新知識絕緣起來,導致學習者無法將學到的單片機知識融入到更廣闊的實用工程技術(shù)領(lǐng)域中去。
通常,單片機有兩個最重要的指標,即功能和速度。如果不考慮速度因素,配以特定的擴展模塊,單片機幾乎可以完成任何任務。即單片機在實現(xiàn)功能的多樣性方面是無可挑剔的,但是一旦必須考慮高速問題的處理,傳統(tǒng)單片機技術(shù)的劣勢即刻暴露無疑。例如對于高速(包括并行和串行)ADC或DAC控制、基于多通道SPWM的電機控制、步進電機細分控制、各類調(diào)制信號發(fā)生的控制、各類高速通信協(xié)議的實現(xiàn),以及不同目的的高速運算等等。通常,解決以上問題的方案可以有兩種選擇:方案一是針對不同功能指標要求,選擇不同的單片機或處理器;例如,若需對高速的ADC或DAC進行控制,可以選擇含有特定接口功能的單片機;若需對步進電機細分控制,可選擇用專用DSP處理器;若需實現(xiàn)數(shù)字調(diào)制信號的發(fā)生和控制,則可為單片機擴展特定的DDS專用器件。然而這一途徑的最大缺陷在于,對于系統(tǒng)設計指標和功能要求,必須找到對應的處理器和擴展模塊。事實上這是一個很難實現(xiàn)的任務,因為還沒有一款處理器或單片機擁有能適應不同高速DAC和ADC的接口形式,同時還擁有多通道的SPWM端口,以及精度、速度和通道數(shù)都可隨意編輯的DDS功能。顯然方案不存在一攬子解決方案。 方案二就是為單片機擴展一片F(xiàn)PGA。這從任何一個角度,包括功能、速度、成本、技術(shù)指標、靈活性、開發(fā)效率、系統(tǒng)升級可行性等等,都無疑是上佳的選擇,而且還是一個一攬子解決方案。這一方案的實用領(lǐng)域正隨著FPGA技術(shù)的深入應用而迅速擴大。 針對這一情況,清華大學出版社于2011年推出了將SOC(System Of a Chip)技術(shù)有機融入單片機教學和實驗的《單片機原理與應用技術(shù)》一書(圖1),作者是桂林電子科技大學和杭州電子科技大學的教授。此教材中的許多內(nèi)容對傳統(tǒng)的單片機應用理念有了明顯的突破,對教學目標有了全新的拓展和延伸,特別是融入了單片機與FPGA擴展和基于單片機IP軟核的片上系統(tǒng)SOC構(gòu)建及應用的知識,從而開拓了一個將普通單片機技術(shù)、FPGA開發(fā)技術(shù)、EDA技術(shù)、片上系統(tǒng)應用技術(shù)有機融合、綜合運用和培養(yǎng)自主創(chuàng)新能力的平臺。
圖
圖2
于是,按照此教材,單片機課程的教學和實驗內(nèi)容可大致分為四個層次來進行:1)傳統(tǒng)單片機的結(jié)構(gòu)和指令系統(tǒng);2)單片機的傳統(tǒng)應用方法和擴展技術(shù);3)單片機擴展FPGA技術(shù)(教學實驗內(nèi)容如圖2所示:為了使單片機能同時測控多個高速外設,引入了FPGA);4)基于單片機IP核的FPGA片上系統(tǒng)SOC開發(fā)技術(shù)(教學實驗內(nèi)容如圖3所示:將圖2的測控核心部分裝入單片F(xiàn)PGA中,構(gòu)成高效的SOC系統(tǒng))。 顯然,這是將傳統(tǒng)單片機技術(shù)與EDA技術(shù)、FPGA開發(fā)技術(shù)、嵌入式處理器軟核應用技術(shù)和SOC技術(shù)有機結(jié)合的課程,這些內(nèi)容顯然與現(xiàn)代電子設計技術(shù)的發(fā)展具有很好的同步性。作者學校相關(guān)專業(yè)在過去多年的單片機教學中,采用了圖1教材的基本理念和核心內(nèi)容,教學效果是顯著的。除了在多屆電子設計競賽中不斷有學生直接利用這些學到的知識獲得可喜的成績外,有不少同學在就業(yè)數(shù)年后創(chuàng)辦了自己IC設計公司或工作室,有的業(yè)務是SOC設計,內(nèi)容多集中于MP4、網(wǎng)絡通信、數(shù)字通信器件或手機語音處理相關(guān)的SOC專用集成電路的設計;有的則是主營特定企業(yè)的專用單片機或?qū)S眉呻娐返脑O計與銷售;還有的同學甚至自主開發(fā)通用單片機,其中還包括單片機開發(fā)芯片和開發(fā)工具的研發(fā)與銷售。作為本科畢業(yè)生,所有這些成就無疑都與他們于在校期間對于諸如單片機SOC技術(shù)等相關(guān)知識的學習和實踐所分不開的。
與《單片機原理與應用技術(shù)》教材配套的實驗開發(fā)與創(chuàng)新設計的設備是:
一、模塊化單片機技術(shù)SOC設計綜合實驗系統(tǒng)
模塊化結(jié)構(gòu)給出了最好的解決方案:
通常的單片機實驗系統(tǒng)是整體結(jié)構(gòu)型的,雖也可完成多種類型實驗,但由于整體結(jié)構(gòu)不可變動,實驗項目和類型是預先設定和固定的,很難有自主發(fā)揮的余地,如果學生的創(chuàng)新思想和創(chuàng)新設計與實驗系統(tǒng)的結(jié)構(gòu)不吻合,便無法在此平臺上獲得驗證。根據(jù)圖2結(jié)構(gòu),模塊化配置給出了最好的解決方案:○ 在實驗和創(chuàng)新實踐中,能提供用于構(gòu)建單片機應用系統(tǒng)中必須的外設接口模塊,以及構(gòu)建SOC充足的邏輯資源和存儲器資源,豐富到足以涵蓋單片機SOC系統(tǒng)任何邏輯規(guī)模的結(jié)構(gòu)以及學生的創(chuàng)造力所及的任何形式的設計項目。○ 在外圍接口方面,除大量豐富的接口模塊,如VGA、PS2、USB、SD卡、RS232串口、語音處理、AD/DA等等現(xiàn)成的模塊外,還提供能適應實驗者隨時根據(jù)自己的創(chuàng)新實驗需要,自主安排和設計新功能模塊的標準接口! 從涉及構(gòu)建SOC級的單片機應用系統(tǒng)的課程性質(zhì)和實驗性質(zhì)看,將實驗硬件平臺定位于大規(guī)模邏輯容量的FPGA,在硬件實現(xiàn)與測試,軟件調(diào)試,軟硬件聯(lián)合測試與驗證方面是十分必須的。
KX-MCU4E22配置如下:
一、基本平臺 編號:A 主系統(tǒng)
☆此平臺最多可同時插12 塊模塊板! KX_USB-Blaster2型雙功能編程器:(1)USB-Blaster編程下載功能(支持AS、PS、JTAG模式):1、對FPGA/CPLD進行配置或編程;2、對配置器件EPCSx編程;3、訪問和編輯FPGA內(nèi)部RAM;4、調(diào)試Nios2,完成SOPC設計;5、支持SignalTapII 嵌入式邏輯分析儀。(2)USB到UART串行通信轉(zhuǎn)換:1、通過USB與FPGA串行通信,實現(xiàn)PC與FPGA的串行通信,且無需RS232電平轉(zhuǎn)換;2、通過USB與單片機的串行通信,實現(xiàn)PC與通用單片機的UART串行通信;3、通過USB對STC等系列單片機進行直接編程開發(fā),無需電平轉(zhuǎn)換! ByteBlasterMV編程器一個(可對isp單片機編程)! 5功能智能邏輯筆:可顯示高電平、低電平、中電平、高阻態(tài)、脈沖信號。注意有“高阻態(tài)”測試功能! 獨立的標準時鐘頻率20個。20MHZ-0.5HZ! 電源有自動保護的+5V,+12V、-12V、、+3.3V、2.5V+、1.2V。☆ 8個LED放光二級管,8個乒乓開關(guān),揚聲器! DDS信號輸出口及幅度、偏移調(diào)諧。
編號:B4、FPGA模塊四 |
CycloneIV EP4E22F17C8N(256腳BGA封裝),內(nèi)部資源極其豐富:2萬2千個邏輯宏單元、60萬RAM bit;4個鎖相環(huán)(超寬超高鎖相環(huán)輸出頻率:1300MHz至2kHz)。接口器件有32MB SDRAM、16M配置Flash、TF卡座,CPLD3032,KSZ8021控制網(wǎng)口,20M有緣時鐘.FPGA板包含 8051/52 IP核。提供商業(yè)級全兼容MCS-51單片機IP核。利用此核,實驗者可以實現(xiàn)傳統(tǒng)單片機實驗系統(tǒng)無法達到的SOC(片上系統(tǒng))設計。即將單片機CPU、RAM、ROM以及其它各類接口電路模塊設計在同一片F(xiàn)PGA中。此類技術(shù)對于對于面向高新技術(shù)企業(yè)的就業(yè)十分必要。 8088、8086 CPU IP核。 8255A IP核模塊;8255A IP核(I/O接口);8253/8254 IP核(定時器);8250 IP核(UART串行通信);8237 IP核(DMA控制器);8259 IP核(可編程中斷控制器),以及基于FPGA的RAM/ROM核、鎖相環(huán)核等。這些IP核與8088CPU核相結(jié)合就能在單片F(xiàn)PGA中構(gòu)成一個微機系統(tǒng),從而學習到實用的SOC設計工程技術(shù)。FPGA中的8088核與MCS-31單片機核及其中的各種模塊和核都能與以下各模塊結(jié)合,實現(xiàn)不同類型的實驗開發(fā)。 |
編號:C9、7數(shù)碼管串行靜態(tài)顯示模塊 |
編號:C21、SD+PS2+RS232+VGA顯示接口模塊 |
○ 基本軟件:1)Quartus II 9.0/11.0;2)ModelSim;3)Synplify;4)IDE;5)8051單片機IP核;6)8088/8086 CPU IP核;7)8088/8086微機系統(tǒng)接口模塊IP核:8253核、8237核、8259核、8255IP核和8250等IP核;8)Nios II
系統(tǒng)部分除EDA以外的單片機及IP核實驗 注:以下實驗根據(jù)系統(tǒng)配置來對應完成
第六章 單片機系統(tǒng)綜合實驗
6.1 單片機基本實驗
實驗6-1.存儲器塊清零程序設計
實驗6-2 二進制到BCD轉(zhuǎn)換程序設計
實驗6-3 十六進制到ASCII碼轉(zhuǎn)換程序設計
實驗6-4 存儲塊移動程序設計
實驗6-5 多分支程序
實驗6-6 數(shù)據(jù)排序程序設計.
實驗6-7 P1口輸入、輸出實驗
實驗6-8 交通燈控制(軟件延時法)
實驗6-9 交通燈控制(定時器延時法)
實驗6-10 計數(shù)器應用實驗
實驗6-11 外部中斷實驗
實驗6-12 定時器實驗1(P1口狀態(tài)取反)
實驗6-13 定時器輸出PWM實驗
實驗6-14 外部中斷實驗
6.2 單片機擴展和接口實驗與設計
實驗6-15 單片機串口擴展
實驗6-16 鍵盤與液晶顯示控制
實驗6-17 單片機串行通信和紅外雙向通信
實驗6-18 單片機擴展X5045看門狗器件
實驗6-19 單片機擴展DS1302時鐘/日歷器件
實驗6-20 SPI串行DAC TLV5637與單片機的接口
實驗6-21 串行精密ADC器件ADS1100與單片機的接口
實驗6-22 串行高速ADC器件ADS7816與單片機的接口
實驗6-23 高速微功耗串行ADC器件TLV2541與單片機的接口
實驗6-24 雙通道A/D轉(zhuǎn)換芯片ADC0832與單片機的接口
實驗6-25 高速同步10位串行A/D轉(zhuǎn)換器與單片機的接口
第七章 單片機擴展FPGA綜合實驗與設計
實驗7-1 單片機串行擴展FPGA系統(tǒng)設計
實驗7-2 單片機數(shù)據(jù)交換FPGA擴展電路設計
實驗7-3 擴展外部數(shù)據(jù)存儲器的單片機與FPGA擴展系統(tǒng)設計
實驗7-4 四通道PWM信號發(fā)生器及其單片機控制系統(tǒng)設計
實驗7-5 移相信號發(fā)生器的FPGA與單片機擴展系統(tǒng)設計
實驗7-6 里薩如圖波形發(fā)生器的單片機與FPGA擴展系統(tǒng)設計
實驗7-7 數(shù)字電壓表FPGA單片機的系統(tǒng)設計
實驗7-8 數(shù)字頻率計與單片機串行通信接口功能設計
實驗7-9 直流電機測控單片機與FPGA擴展系統(tǒng)設計
實驗7-10 等精度頻率/脈寬/占空比/相位多功能測試儀設計
第八章 基于單片機8051/8088微機原理IP核的FPGA片上系統(tǒng)SOC設計
實驗8-1.單片機串口擴展FPGA片上系統(tǒng)SOC設計
實驗8-2.擴展外部數(shù)據(jù)存儲器的FPGA單片系統(tǒng)設計
實驗8-3.四通道PWM信號發(fā)生器及單片系統(tǒng)設計
實驗8-4.移相信號發(fā)生器的FPGA片上系統(tǒng)SOC設計
實驗8-5.里薩如圖波形發(fā)生器的FPGA片上系統(tǒng)設計
實驗8-6.數(shù)字電壓表FPGA單片系統(tǒng)SOC設計
實驗8-7.數(shù)字頻率計與單片機串行通信接口功能設計
實驗8-8.直流電機測控FPGA單片系統(tǒng)設計
實驗8-9.等精度頻率計FPGA單片系統(tǒng)設計
實驗8-10.基于FPGA的紅外雙向通信單片系統(tǒng)設計
實驗8-11. 頻率和占空比可數(shù)控方波信號發(fā)生器設計示例
實驗8-12. 8052 IP核等精度頻率計/GPS應用聯(lián)合設計
實驗8-13. 8051核控制DS18B20數(shù)字溫度模塊
實驗8-14. 8051核驅(qū)動LCD128X64
實驗8-15. 基本8088和8253核應用
實驗8-16. 基本8088系統(tǒng)的GPS應用模塊
實驗8-17. 8088系統(tǒng)的DMA核應用
實驗8-18. 8088系統(tǒng)UART核應用
實驗8-19. 8086經(jīng)典微機片上系統(tǒng)構(gòu)建