從目前單片機教學內容和實驗方法來看,確實已與單片機本身的歷史一樣久遠了。不難發現,現在高校中單片機教學的絕大多數內容仍然停留在51單片機最初進入課堂的那個年代(1984前后),例如許多現在看來早已沒有什么實用價值的內容卻逢課必講,甚至是詳述,如0809、0832、8255、8155、8279,以及一些過時的存儲器等器件及接口技術,這導致了目前的單片機課程中學到的知識幾乎很難用于對付現在的大學生電子設計競賽中大多數賽題,當然更加無法對付在未來工程實踐中出現的諸多問題了。此外,從單片機技術引入課堂至此,一直作為一門獨立的,孤立的專業基礎課來對待,從而將其與后來不斷涌現的許多新技術新知識絕緣起來,導致學習者無法將學到的單片機知識融入到更廣闊的實用工程技術領域中去。
通常,單片機有兩個最重要的指標,即功能和速度。如果不考慮速度因素,配以特定的擴展模塊,單片機幾乎可以完成任何任務。即單片機在實現功能的多樣性方面是無可挑剔的,但是一旦必須考慮高速問題的處理,傳統單片機技術的劣勢即刻暴露無疑。例如對于高速(包括并行和串行)ADC或DAC控制、基于多通道SPWM的電機控制、步進電機細分控制、各類調制信號發生的控制、各類高速通信協議的實現,以及不同目的的高速運算等等。通常,解決以上問題的方案可以有兩種選擇:方案一是針對不同功能指標要求,選擇不同的單片機或處理器;例如,若需對高速的ADC或DAC進行控制,可以選擇含有特定接口功能的單片機;若需對步進電機細分控制,可選擇用專用DSP處理器;若需實現數字調制信號的發生和控制,則可為單片機擴展特定的DDS專用器件。然而這一途徑的最大缺陷在于,對于系統設計指標和功能要求,必須找到對應的處理器和擴展模塊。事實上這是一個很難實現的任務,因為還沒有一款處理器或單片機擁有能適應不同高速DAC和ADC的接口形式,同時還擁有多通道的SPWM端口,以及精度、速度和通道數都可隨意編輯的DDS功能。顯然方案不存在一攬子解決方案。 方案二就是為單片機擴展一片FPGA。這從任何一個角度,包括功能、速度、成本、技術指標、靈活性、開發效率、系統升級可行性等等,都無疑是上佳的選擇,而且還是一個一攬子解決方案。這一方案的實用領域正隨著FPGA技術的深入應用而迅速擴大。 針對這一情況,清華大學出版社于2011年推出了將SOC(System Of a Chip)技術有機融入單片機教學和實驗的《單片機原理與應用技術》一書(圖1),作者是桂林電子科技大學和杭州電子科技大學的教授。此教材中的許多內容對傳統的單片機應用理念有了明顯的突破,對教學目標有了全新的拓展和延伸,特別是融入了單片機與FPGA擴展和基于單片機IP軟核的片上系統SOC構建及應用的知識,從而開拓了一個將普通單片機技術、FPGA開發技術、EDA技術、片上系統應用技術有機融合、綜合運用和培養自主創新能力的平臺。


于是,按照此教材,單片機課程的教學和實驗內容可大致分為四個層次來進行:1)傳統單片機的結構和指令系統;2)單片機的傳統應用方法和擴展技術;3)單片機擴展FPGA技術(教學實驗內容如圖2所示:為了使單片機能同時測控多個高速外設,引入了FPGA);4)基于單片機IP核的FPGA片上系統SOC開發技術(教學實驗內容如圖3所示:將圖2的測控核心部分裝入單片FPGA中,構成高效的SOC系統)。 顯然,這是將傳統單片機技術與EDA技術、FPGA開發技術、嵌入式處理器軟核應用技術和SOC技術有機結合的課程,這些內容顯然與現代電子設計技術的發展具有很好的同步性。作者學校相關專業在過去多年的單片機教學中,采用了圖1教材的基本理念和核心內容,教學效果是顯著的。除了在多屆電子設計競賽中不斷有學生直接利用這些學到的知識獲得可喜的成績外,有不少同學在就業數年后創辦了自己IC設計公司或工作室,有的業務是SOC設計,內容多集中于MP4、網絡通信、數字通信器件或手機語音處理相關的SOC專用集成電路的設計;有的則是主營特定企業的專用單片機或專用集成電路的設計與銷售;還有的同學甚至自主開發通用單片機,其中還包括單片機開發芯片和開發工具的研發與銷售。作為本科畢業生,所有這些成就無疑都與他們于在校期間對于諸如單片機SOC技術等相關知識的學習和實踐所分不開的。
與《單片機原理與應用技術》教材配套的實驗開發與創新設計的設備是:
一、模塊化單片機技術SOC設計綜合實驗系統

模塊化結構給出了最好的解決方案:
通常的單片機實驗系統是整體結構型的,雖也可完成多種類型實驗,但由于整體結構不可變動,實驗項目和類型是預先設定和固定的,很難有自主發揮的余地,如果學生的創新思想和創新設計與實驗系統的結構不吻合,便無法在此平臺上獲得驗證。根據圖2結構,模塊化配置給出了最好的解決方案:○ 在實驗和創新實踐中,能提供用于構建單片機應用系統中必須的外設接口模塊,以及構建SOC充足的邏輯資源和存儲器資源,豐富到足以涵蓋單片機SOC系統任何邏輯規模的結構以及學生的創造力所及的任何形式的設計項目! 在外圍接口方面,除大量豐富的接口模塊,如VGA、PS2、USB、SD卡、RS232串口、語音處理、AD/DA等等現成的模塊外,還提供能適應實驗者隨時根據自己的創新實驗需要,自主安排和設計新功能模塊的標準接口! 從涉及構建SOC級的單片機應用系統的課程性質和實驗性質看,將實驗硬件平臺定位于大規模邏輯容量的FPGA,在硬件實現與測試,軟件調試,軟硬件聯合測試與驗證方面是十分必須的。
KX-MCU55配置如下:
一、基本平臺 編號:A 主系統
☆此平臺最多可同時插12 塊模塊板! KX_USB-Blaster2型雙功能編程器:(1)USB-Blaster編程下載功能(支持AS、PS、JTAG模式):1、對FPGA/CPLD進行配置或編程;2、對配置器件EPCSx編程;3、訪問和編輯FPGA內部RAM;4、調試Nios2,完成SOPC設計;5、支持SignalTapII 嵌入式邏輯分析儀。(2)USB到UART串行通信轉換:1、通過USB與FPGA串行通信,實現PC與FPGA的串行通信,且無需RS232電平轉換;2、通過USB與單片機的串行通信,實現PC與通用單片機的UART串行通信;3、通過USB對STC等系列單片機進行直接編程開發,無需電平轉換。
☆ 5功能智能邏輯筆:可顯示高電平、低電平、中電平、高阻態、脈沖信號。注意有“高阻態”測試功能。
☆ 獨立的標準時鐘頻率20個。20MHZ-0.5HZ! 電源有自動保護的+5V,+12V、-12V、、+3.3V、2.5V+、1.2V! 8個LED放光二級管,8個乒乓開關,揚聲器! DDS信號輸出口及幅度、偏移調諧。
編號:B3、FPGA模塊三 |
CycloneIII EP3C55F484(484腳BGA封裝),內部資源極其豐富:5萬6千個邏輯宏單元、240萬RAM bit;4個鎖相環(超寬超高鎖相環輸出頻率:1300MHz至2kHz)。其他內部資源和技術指標好于EP3C40;接口器件有32MB SDRAM、1GB并行Flash、2M串行Flash 16M配置Flash、256KSRAM,20MHz有源晶振等,板上還有3032 CPLD,。FPGA板包含 8051/52 IP核。提供商業級全兼容MCS-51單片機IP核。利用此核,實驗者可以實現傳統單片機實驗系統無法達到的SOC(片上系統)設計。即將單片機CPU、RAM、ROM以及其它各類接口電路模塊設計在同一片FPGA中。此類技術對于對于面向高新技術企業的就業十分必要。 8088、8086 CPU IP核。 8255A IP核模塊;8255A IP核(I/O接口);8253/8254 IP核(定時器);8250 IP核(UART串行通信);8237 IP核(DMA控制器);8259 IP核(可編程中斷控制器),以及基于FPGA的RAM/ROM核、鎖相環核等。這些IP核與8088CPU核相結合就能在單片FPGA中構成一個微機系統,從而學習到實用的SOC設計工程技術。FPGA中的8088核與MCS-31單片機核及其中的各種模塊和核都能與以下各模塊結合,實現不同類型的實驗開發。此系統能運行完整的8086微機SOC片上系統,其內部SRAM能放下BIOS啟動ROM、顯示緩存、PS2緩存等,能啟動MS-DOS操作系統,在VGA顯示器上用PS2鍵盤能完成MS-DOS命令和WINDOWS及運行傳統軟件,如TURBO C,QBASIC等等。為SOC片上系統的學習與創新設計提供了絕好的平臺。 |
編號: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微機系統接口模塊IP核:8253核、8237核、8259核、8255IP核和8250等IP核;8)Nios II
系統部分除EDA以外的單片機及IP核實驗
注:以下實驗根據系統配置來對應完成
第六章 單片機系統綜合實驗
6.1 單片機基本實驗
實驗6-1.存儲器塊清零程序設計
實驗6-2 二進制到BCD轉換程序設計
實驗6-3 十六進制到ASCII碼轉換程序設計
實驗6-4 存儲塊移動程序設計
實驗6-5 多分支程序
實驗6-6 數據排序程序設計.
實驗6-7 P1口輸入、輸出實驗
實驗6-8 交通燈控制(軟件延時法)
實驗6-9 交通燈控制(定時器延時法)
實驗6-10 計數器應用實驗
實驗6-11 外部中斷實驗
實驗6-12 定時器實驗1(P1口狀態取反)
實驗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轉換芯片ADC0832與單片機的接口
實驗6-25 高速同步10位串行A/D轉換器與單片機的接口
第七章 單片機擴展FPGA綜合實驗與設計
實驗7-1 單片機串行擴展FPGA系統設計
實驗7-2 單片機數據交換FPGA擴展電路設計
實驗7-3 擴展外部數據存儲器的單片機與FPGA擴展系統設計
實驗7-4 四通道PWM信號發生器及其單片機控制系統設計
實驗7-5 移相信號發生器的FPGA與單片機擴展系統設計
實驗7-6 里薩如圖波形發生器的單片機與FPGA擴展系統設計
實驗7-7 數字電壓表FPGA單片機的系統設計
實驗7-8 數字頻率計與單片機串行通信接口功能設計
實驗7-9 直流電機測控單片機與FPGA擴展系統設計
實驗7-10 等精度頻率/脈寬/占空比/相位多功能測試儀設計
第八章 基于單片機8051/8088微機原理IP核的FPGA片上系統SOC設計
實驗8-1.單片機串口擴展FPGA片上系統SOC設計
實驗8-2.擴展外部數據存儲器的FPGA單片系統設計
實驗8-3.四通道PWM信號發生器及單片系統設計
實驗8-4.移相信號發生器的FPGA片上系統SOC設計
實驗8-5.里薩如圖波形發生器的FPGA片上系統設計
實驗8-6.數字電壓表FPGA單片系統SOC設計
實驗8-7.數字頻率計與單片機串行通信接口功能設計
實驗8-8.直流電機測控FPGA單片系統設計
實驗8-9.等精度頻率計FPGA單片系統設計
實驗8-10.基于FPGA的紅外雙向通信單片系統設計
實驗8-11. 頻率和占空比可數控方波信號發生器設計示例
實驗8-12. 8052 IP核等精度頻率計/GPS應用聯合設計
實驗8-13. 8051核控制DS18B20數字溫度模塊
實驗8-14. 8051核驅動LCD128X64
實驗8-15. 基本8088和8253核應用
實驗8-16. 基本8088系統的GPS應用模塊
實驗8-17. 8088系統的DMA核應用
實驗8-18. 8088系統UART核應用
實驗8-19. 8086經典微機片上系統構建