謝 東
(銅陵學(xué)院電氣工程系,安徽銅陵244000)
嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,對功能、可靠性、成本、體積及功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。隨著嵌入式系統(tǒng)日益廣泛的應(yīng)用,市場對嵌入式技術(shù)應(yīng)用人才的需求也越來越迫切。所以,在高校自動化、計(jì)算機(jī)等相關(guān)專業(yè)開設(shè)嵌入式系統(tǒng)教學(xué)課程是大勢所趨。鑒于此,筆者對用于嵌入式系統(tǒng)教學(xué)的實(shí)驗(yàn)裝置進(jìn)行了研發(fā)。
本文介紹的是以嵌入式系統(tǒng)教學(xué)為目的的實(shí)驗(yàn)裝置。通過本裝置,學(xué)生可熟悉μ Clinux操作系統(tǒng),了解操作系統(tǒng)的啟動過程、調(diào)度機(jī)制、內(nèi)存管理、文件系統(tǒng)及操作系統(tǒng)的各個方面。也可以用來了解CPU與其它外設(shè)的控制原理,領(lǐng)會嵌入式系統(tǒng)的網(wǎng)絡(luò)通信、CAN通信和通信協(xié)議的嵌入式μ Clinux實(shí)現(xiàn)等。
本裝置硬件結(jié)構(gòu)如圖1所示,主要包括CPU、存儲器、人機(jī)接口、測量控制電路、CAN通信接口和以太網(wǎng)通信接口等。通過20腳標(biāo)準(zhǔn)JTAG調(diào)試接口,結(jié)合ARM 的集成開發(fā)環(huán)境(IDE)ADS1.2,可調(diào)試驅(qū)動程序、內(nèi)核和啟動代碼等,并可查看ARM芯片內(nèi)部的硬件資源。
圖1 系統(tǒng)硬件結(jié)構(gòu)
CPU采用的是S3C44B0X微處理器,存儲電路包括一片1M×16位的Flash(SST39VF160)和一片4M×16位的SDRAM(HY57V65160B)。Flash存儲芯片用于存放啟動代碼、內(nèi)核和文件系統(tǒng)。SDRAM由CPU專用SDRAM片選信號nSCS0選通,系統(tǒng)啟動時,由CPU將Flash中的程序調(diào)入SDRAM后運(yùn)行[1]。
人機(jī)接口包括鍵盤和LCD液晶屏。
測量控制電路主要是A/D和D/A轉(zhuǎn)換電路。S3C44B0X內(nèi)部具有8通道10位A/D轉(zhuǎn)換器。本裝置提供了兩路直流電壓測量電路,經(jīng)S3C44B0X的AIN1和AIN2兩個輸入通道將被測直流電壓送入其內(nèi)部的A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。D/A轉(zhuǎn)換由芯片AD5320完成,它是12位串行D/A轉(zhuǎn)換器。
本裝置CAN通信接口主要由CAN控制器和CAN收發(fā)器組成。CAN控制器采用獨(dú)立的SJA1000,它在S3C44B0X CPU的控制下完成數(shù)據(jù)的接收與發(fā)送。CAN收發(fā)器 PCA82C250提供了對總線的差動接收和差動發(fā)送能力,能夠增強(qiáng)信號抗干擾能力[2]。
以太網(wǎng)通信接口由芯片 RTL8019AS、濾波器20F001N以及型號為 RJ45的 8針插頭組成。RT L8019AS輸出端連接20F001N,它是一個雙絞線驅(qū)動/接收器,為耦合隔離變壓器模塊。之后通過帶RJ45插頭的雙絞線接入以太網(wǎng)。
本實(shí)驗(yàn)裝置的軟件結(jié)構(gòu)如圖2所示。
啟動代碼Boot Loader是在系統(tǒng)復(fù)位后執(zhí)行的第一段代碼。本裝置的功能如下:禁止所有的中斷、設(shè)置處理器時鐘和運(yùn)行速度完成對CPU初始化、初始化存儲區(qū)、設(shè)置堆棧指針并將bss段清0、跳轉(zhuǎn)到內(nèi)核印像入口并開始執(zhí)行內(nèi)核程序。
圖2 系統(tǒng)軟件結(jié)構(gòu)
本裝置操作系統(tǒng) μ Clinux支持 NFS、ext2、romfs、JFFS等文件系統(tǒng)。本裝置采用的文件系統(tǒng)是romfs文件系統(tǒng)。通過在宿主機(jī)上建立μ Clinux的交叉開發(fā)編譯環(huán)境,生成內(nèi)核和文件系統(tǒng)的映像文件。然后將映像文件通過串行口下載到目標(biāo)板,燒寫在目標(biāo)板閃存的不同位置處。這樣,啟動代碼初始化硬件設(shè)施,內(nèi)核掛載文件系統(tǒng),整個系統(tǒng)啟動后,操作人員輸人執(zhí)行命令,可以做各項(xiàng)實(shí)驗(yàn)[3]。
本裝置對ADC、DAC、鍵盤、LCD 液晶屏、CAN通信接口和以太網(wǎng)通信接口等硬件電路都設(shè)計(jì)了相應(yīng)的驅(qū)動程序。
學(xué)生通過應(yīng)用程序可以學(xué)習(xí)ARM匯編程序和C語言程序的編寫與調(diào)試、掌握CPU基本接口功能及各硬件外設(shè)的應(yīng)用方法。此外,學(xué)生也可以自行編寫應(yīng)用程序,從而掌握嵌入式系統(tǒng)軟件的開發(fā)流程和技巧。
本實(shí)驗(yàn)裝置的開發(fā)是對嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)的一種嘗試。實(shí)驗(yàn)裝置開發(fā)成功后,已在本校相關(guān)專業(yè)的實(shí)驗(yàn)教學(xué)中投入使用,可進(jìn)行基礎(chǔ)驗(yàn)證型實(shí)驗(yàn)和設(shè)計(jì)綜合型實(shí)驗(yàn)。可開設(shè)的實(shí)驗(yàn)項(xiàng)目有:①ARM開發(fā)環(huán)境實(shí)驗(yàn);②C語言、匯編語言編程實(shí)驗(yàn);③串口通訊實(shí)驗(yàn);④中斷實(shí)驗(yàn);⑤A/D、D/A轉(zhuǎn)換實(shí)驗(yàn);⑥鍵盤、LED和 LCD實(shí)驗(yàn);⑦BootLoader實(shí)驗(yàn);⑧μ Clinux內(nèi)核移植及裁減實(shí)驗(yàn);⑨CAN總線通信實(shí)驗(yàn);⑩以太網(wǎng)通信實(shí)驗(yàn); 11嵌入式Web服務(wù)器實(shí)驗(yàn);12 μ Clinux下驅(qū)動程序編寫實(shí)驗(yàn)等。
[1] 田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用.北京:北京航空航天大學(xué)出版社,2005
[2] 饒運(yùn)濤等編著.現(xiàn)場總線CAN原理與應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,2003
[3] 鄒思軼.Linux嵌入式設(shè)計(jì)與應(yīng)用.北京:清華大學(xué)出版社,2002