許京雷
摘 要 把單片機課程合并到嵌入式系統課程,把51作為一種最簡單的嵌入式處理器進行學習,同時學習一種較高級的嵌入式處理器STM32。
關鍵詞 嵌入式系統;單片機;計算機系統
中圖分類號:G642.3 文獻標識碼:B
文章編號:1671-489X(2017)08-0085-02
Content Setting of Embedded System Curriculum//XU Jinglei
Abstract The MCU Course is combined with embedded system courses, taking the 51 as one of the most simple embedded processor
to learn, while learning a more advanced embedded processor STM32.
Key words embedded system; single-chip; computer system
1 嵌入式系統的定位
目前對于嵌入式系統的理解各有不同,這種情況直接導致嵌入式課程在內容設置方面的區別。通過分析不同觀點,可以得到合適的指導原則。
一種觀點認為,嵌入式系統是非PC系統,有計算機功能,但不能稱之為計算機設備或設備。它是一種以軟件和硬件為中心的專用計算機系統,可應用于功能、可靠性、成本、體積、功耗等方面有嚴格要求的場合。簡單地說,嵌入式系統的硬件和軟件聯合使用,仿照BIOS的工作方式,具有自動化程度高、軟件代碼小、響應速度快的特點,特別是具有實時多任務的功能[1]。嵌入式系統主要由嵌入式處理器、相關支持硬件、嵌入式操作系統和應用軟件系統組成。
這種觀點看似面面俱到,實則主次不分,沒有指出嵌入式系統的本質,其中把嵌入式系統稱為專用計算機系統更是錯誤的,因為事實上,嵌入式系統也可以作為通用計算機系統。
另一種觀點認為,嵌入式系統就是ARM體系結構、ARM指令系統、S3C2410嵌入式微控制器及嵌入式系統分析和設計等內容[2-3]。要了解嵌入式操作系統的進程、進程調度、進程間通信機制及嵌入式操作系統的其他功能,掌握嵌入式操作系統LINUX的基本命令,LINUX操作系統下應用程序的開發與調試,LINUX操作系統驅動程序的調試。
這種觀點混淆了嵌入式系統和嵌入式操作系統的區別,實質是在講如何使用LINUX嵌入式操作系統,而這只是嵌入式系統的一小部分。
綜合以上觀點,可以看到對于嵌入式系統的定位比較混亂,正確的定位應該以計算機系統的核心單元處理器為準,以處理器的最小尺寸為依據,把整個計算機系統分為三大類:服務式、桌面式、嵌入式。
1)服務式指的是服務式計算機系統,提供高等的計算性能,采用服務式處理器,如網站服務器、超級計算機;
2)桌面式指的是桌面式計算機系統,提供中等的計算性能,采用桌面式處理器,如臺式機、筆記本;
3)嵌入式指的是嵌入式計算機系統,提供低等的計算性能,采用嵌入式處理器,如手機、平板。
這種分類方法只以處理器的最小尺寸為依據,標準客觀清晰,尺寸越小性能越低。處理器的最小尺寸指的是同型號前提下的最小封裝。事實上,嵌入式的詞義本身也意味著尺寸小,以便嵌入到其他設備。
至于每類計算機系統要做成通用還是專用,要根據實際需求而定。如手機這個嵌入式系統,發展初期是專用的,到智能手機時期,已經是通用系統了。
簡單說,嵌入式系統是采用嵌入式處理器的計算機系統。嵌入式處理器又稱為單片機、微控制器、微處理器。嵌入式處理器包含一切小尺寸的處理器,如51、61、AVR、PIC、ARM、DSP、FPGA等。
2 單片機和嵌入式系統的統一
單片機是一種集成電路芯片,包含大規模集成電路技術的CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能,有的還包含顯示驅動電路、脈寬調制電路。單片機是一個小而完善的計算機系統,廣泛應用于工業控制領域,從8位單片機發展到目前32位MCU。
單片機,毫無疑問,也是一種小尺寸的嵌入式處理器。采用單片機構成的計算機系統,也是一種嵌入式系統。單片機的詞義本身也意味著在單個硅片上集成了盡可能多的部件,以便實現尺寸小的目標,這個特征也是所有嵌入式處理器的特征。因此,單片機和嵌入式可以統一化,或者說,單片機是嵌入式處理器的一個別稱。
目前,單片機課程普遍以51為主,這容易造成一種錯誤認識:單片機就是51。事實上,單片機的內涵要大得多。為了理清關系,可以把單片機課程合并到嵌入式系統課程,把51作為一種最簡單的嵌入式處理器進行學習,同時學習一種較高級的嵌入式處理器STM32,相互對照,以便樹立正確的嵌入式系統的概念。
3 嵌入式系統的教學方向
嵌入式系統學習的內容很多,需要設定若干教學方向。首先,要明確的是學習嵌入式系統的目的是如何使用,而不是制造。具體說就是不制造嵌入式處理器,不制造嵌入式操作系統,而是利用現有嵌入式處理器設計電路,或利用現有嵌入式操作系統編制程序。其次,要明確有無操作系統,這是設定教學方向的依據。
如果沒有操作系統,則需要在程序設計中直接操作各個硬件寄存器,和硬件直接打交道,程序和硬件直接相關,稱為嵌入式系統的硬方向。一個嵌入式處理器是否具有操作系統不是隨意的,因為操作系統屬于額外代碼,對嵌入式處理器的性能是有要求的。若嵌入式處理器的性能較低,勉強運行操作系統,也是沒有意義的,不如裸機運行快。這方面的嵌入式處理器有51、61、STM32等,學習的重點在于處理器本身。嵌入式系統的硬方向,其課程名仍稱為嵌入式系統。
如果有操作系統,則程序設計中無須直接操作各個硬件寄存器,不和硬件直接打交道,直接操作硬件的工作由操作系統(含驅動程序)完成,程序可以做到和硬件無關,只需和操作系統(含驅動程序)軟件接口,稱為嵌入式系統的軟方向。一個嵌入式處理器是否具有操作系統不是隨意的,性能較高的嵌入式處理器,如主頻400 MHz以上的S3C2410,其內部結構已經復雜到讓直接操作硬件變得不現實,必須采用嵌入式操作系統進行開發,如Linux、Android、iOS,學習的重點在于操作系統,而不是處理器本身。嵌入式系統的軟方向,其課程名可以稱為嵌入式操作系統。
4 嵌入式系統的內容設置
嵌入式系統,作為嵌入式系統的硬方向,課程內容應該是學習不帶操作系統的嵌入式處理器,學習的重點在于處理器本身的細節,為進一步學習嵌入式操作系統建立一個扎實的硬件基礎。沒有這個環節,就難以理解操作系統的一些硬件概念。
嵌入式系統課程主要培養學生了解有關嵌入式系統的基本原理、設計方法以及嵌入式系統的最新發展,初步掌握嵌入式系統開發的過程和常用方法。通過本課程的學習,要求學生掌握嵌入式系統的基礎概念、基本原理、開發流程和步驟、嵌入式應用系統工程設計和解決技術問題的基本方法,具備一個合格的高新技術工程研發人員綜合運用所學各種知識和技能,從分析嵌入式系統應用項目需求,到確立設計開發方案,到方案實施和解決基本問題的能力。
課程基本內容:了解嵌入式系統的特性、基本原理及其發展趨勢;建立嵌入式系統的概念;掌握51體系結構、STM32嵌入式微控制器及嵌入式系統分析和設計等內容。該課程是一門實踐與理論結合性很強的課程,以電子技術、微機原理與接口技術、C語言等課程為基礎,主要介紹基于51和STM32微處理器的硬件基礎和編程。
課程重點與難點:嵌入式系統的概念,嵌入式系統的硬件系統,包括IO、中斷、DMA、SPI的工作原理,嵌入式系統的C語言編程方法。
課程章節主要內容總體分為51和STM32兩大部分。
第一部分
第2章 AT89s51單片機硬件結構:AT89S51單片機的硬件組成,引腳功能,電源及時鐘引腳等。
第3章 C51語言編程基礎:Keil C51簡介,Keil C51的開發工具,C51語言程序設計基礎,C51語言中的數據類型與存儲類型等。
第4章 AT89s51片內并行端口的原理及編程:AT89S51
的并行I/0端口的結構及工作原理,并行I/O端口的C51編程舉例。
第5章 AT89s51單片機的中斷系統:AT89S51中斷技術概述,中斷允許與中斷優先級的控制,響應中斷請求的條件,中斷函數。
第6章 AT89s51單片機的定時器/計數器:工作方式控制寄存器TMOD,定時器/計數器的4種工作方式,定時器/計數器的編程和應用。
第7章 AT89S51單片機的串行口:串行口的結構,串行口控制寄存器SCON,特殊功能寄存器PCON,串行口的4種工作方式。
第12章 單片機的串行擴展技術。
第二部分
第1章 STM32基本原理:STM32性能和結構,Cortex M3處理器,Cortex M3寄存器,STM32儲存地址映射,復位和時鐘控制。
第2章 硬件設計:STM32主板設計,MCU及其周圍電路設計,USB轉串口電路設計,TTL轉RS232電路設計,網絡端口電路。
第3章 STM32軟件開發:STM32軟件開發環境,MDKKeil開發環境,獲得和理解固件庫,操作GPIO和管理中斷,嵌套向量中斷控制器NVIC庫函數,串口通信和DMA編程,SPI與I2C編程,TF卡編程,液晶屏及觸摸屏編程。
參考文獻
[1]王奕翔.《嵌入式系統原理與應用》課程教學改革與實踐[J].教育現代化,2016(25):51-52.
[2]李涵.案例教學法在嵌入式系統安全課程中的應用[J].教育教學論壇,2016(13):186-187.
[3]董謙.嵌入式系統設計課程教學資源建設探索[J].產業與科技論壇,2016(5):197-198.