張 力
(四川省委黨校研究生部, 四川 成都 610072)
在單片機上開發(fā)較復雜的應用系統(tǒng),常常需要經(jīng)歷確立開發(fā)方案、開發(fā)硬件、開發(fā)底層軟件(必要時需要操作系統(tǒng))、開發(fā)應用軟件的過程,這不僅耗費了大量的時間,而且由于前期缺乏明確的可評估的軟硬件平臺從而增加了開發(fā)風險.隨著單片機片上系統(tǒng)的成熟以及實時操作系統(tǒng)技術的發(fā)展,采用基于單片機片上系統(tǒng)和實時操作系統(tǒng)來搭建單片機的快速開發(fā)平臺將大大提升開發(fā)效率并降低開發(fā)的風險和成本.本文研究了如何利用ZE5 SoC和uC/OS-Ⅱ來構建單片機的快速開發(fā)平臺.
ZE5系列可定制微控制器是由美國Triscend公司研發(fā)的一款基于8051/52系列CPU的SoC(System on Chip).Triscend在2004年被Xinlix公司收購,目前中國境內(nèi)由Zylogic公司推廣ZE5系列產(chǎn)品.ZE5 SoC(system on chip)的突出特點在于除了提供基于8051的微控制器外還內(nèi)嵌可配置系統(tǒng)邏輯(CSL),開發(fā)者僅僅通過軟件配置就可以實現(xiàn)多種硬件邏輯模塊,例如UART、SPI、FIFO、ROM等等,這為快速靈活的開發(fā)和測試基于8051單片機的硬件方案提供了可能性.
uC/OS-Ⅱ是著名的源碼公開的實時操作系統(tǒng),自從1992年發(fā)布以來在世界各地都獲得了廣泛的應用,它是一種專門為嵌入式設備設計的內(nèi)核.尤其值得一提的是,該系統(tǒng)自從2.51版本之后,就通過了美國FAA認證,可以運行在諸如航天器等對安全要求極為苛刻的系統(tǒng)之上.鑒于uC/OS-Ⅱ可以免費獲得代碼,對于嵌入式RTOS而言,選擇uC/OS無疑是最經(jīng)濟的選擇[1].
開發(fā)基于ZE5和uC/OS-Ⅱ實時操作系統(tǒng)的快速開發(fā)平臺,可以為開發(fā)者提供一個快速靈活、可定制的51單片機軟硬件開發(fā)環(huán)境,從而節(jié)約時間和成本.
軟件開發(fā)平臺:Keil uVision3 Ver 3.5;Triscend FastChip Ver 2.2.主要硬件:ZE505S16-25L(CPU)、SST39LF040(FLASH)、MAX208CWG(RS232收發(fā)器).操作系統(tǒng):uC/OS-Ⅱ Ver 2.61.
ZE5系列芯片的典型結構如圖1所示.
圖1 ZE5系列芯片結構
ZE5可配置微控制器在一個器件上集成了一個增強性能的8051微控制器、一個大的SRAM塊、一個高速的專用系統(tǒng)總線以及緊密連接在處理器和系統(tǒng)總線上的可配置邏輯[2].
ZE5是基于FPGA技術的SoC芯片,但它并不需要專門的配置芯片,只需一片串行或并行普通FLASH用于存放FPGA邏輯和8051用戶代碼即可.ZE5系統(tǒng)使用并行加載方式比串行加載方式更快且更可靠.
一般的8051系統(tǒng)需要搭配程序空間存儲器以及數(shù)據(jù)空間存儲器才能構成一個完整可用的基本系統(tǒng).在ZE5內(nèi)部內(nèi)置有至少16 kB SRAM作為數(shù)據(jù)空間存儲器,所以無需外接SRAM.
圖2 ZE505S16-25L原理圖
由于ZE5內(nèi)置有可配置邏輯(CSL),結合ZE5系統(tǒng)的集成開發(fā)環(huán)境FastChip,只需通過簡單的鼠標拖放操作就能夠實現(xiàn)多種硬件邏輯模塊,例如UART、FIFO、SPI、ROM等.在本文中實現(xiàn)了一個UART功能.
ZE5的啟動過程如下:首先系統(tǒng)上電復位,而后ZE5從上述并行FLASH中加載FPGA邏輯到內(nèi)部空間,直至FPGA邏輯生效后ZE5開始從上述FLASH中讀取8051代碼并開始運行用戶程序.
綜上所述,一個基于ZE5的最小系統(tǒng)無需外接SRAM,只需外接一片F(xiàn)LASH作為存放FPGA邏輯及8051用戶代碼即可.本系統(tǒng)的CPU選用ZE505S16-25L,外接并行FLASH選用SST39VF040.由于ZE5實現(xiàn)的UART屬于LVCMOS電平,要和PC機通訊必須將其轉換為符合RS232規(guī)范的電平,因此本系統(tǒng)中選用了一片MAX208CWG實現(xiàn)上述功能,完成和PC機通訊.
圖3 SST39F040原理圖
硬件的部分原理圖如圖2~圖4所示.
uC/OS-Ⅱ在設計之初已經(jīng)充分考慮了代碼的可移植性,其大部分代碼用C語言編寫,但是仍然必須修改部分代碼以保證在不同的處理器上能夠正確運行.
uC/OS-Ⅱ軟件的體系結構如圖5所示[3].
可以看出,要將uC/OS-Ⅱ移植到ZE5平臺,只需修改OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C 3個文件即可.有關uC/OS-Ⅱ移植到51系列CPU的文章有很多[4,5],這里不再贅述.
圖4 RS232原理圖
圖5 uC/OS-Ⅱ 軟件體系結構
為了保證移植代碼的可靠性,在ZE505S16-25L上實現(xiàn)了一個UART,編寫了嚴格的測試程序并通過PC機超級終端軟件驗證了移植代碼的可靠性.
采用基于ZE5和uC/OS-Ⅱ的開發(fā)平臺能夠快速靈活地建立復雜的應用系統(tǒng).目前基于uC/OS-Ⅱ和ZE5平臺的快速開發(fā)系統(tǒng)已經(jīng)很好的應用在新項目方案的評估當中,在實際使用中取得了較好的效果.
參考文獻
[1] uC/OS.Ⅱ 簡介[EB/OL]. http://blog.gkong.com/more.asp name=wuhongweizz&id=25552, 2007-9-19.
[2] Zylogic E5可定制的微控制器[EB/OL]. http://www.zylogic.com.cn/download/pdf/ze5_kz.pdf, 2009.
[3] Jean J.Labrosse著,邵貝貝翻譯.嵌入式實時操作系統(tǒng)uCOS.Ⅱ (第二版)[M]. 北京:北京航空航天大學出版社, 2003: 284.
[4] 2005版uCOSⅡ C51移植心得[EB/OL]. http://www.91linux.com/html/article/qianrushiyingyong/20080303/9840.html, 2008.
[5] 曾 偉,廖力清. 實時操作系統(tǒng)uC/OS.Ⅱ在DSP上移植的實現(xiàn)[J]. 計算機工程, 2007, 33(17):270-272.