丁鵬輝 潘立武
摘要:很多高校都開設(shè)了嵌入式專業(yè)的相關(guān)課程,很多學(xué)生反應(yīng)嵌入式裸機(jī)開發(fā)入門非常困難?;谖倚W(xué)生學(xué)習(xí)的實(shí)際情況,該文研究了S5PV210芯片板上LED燈的控制方法,通過熟悉LED電路圖和LED與對應(yīng)的 GPIO 引腳連接關(guān)系后,采用匯編語言和C語言實(shí)現(xiàn)了LED燈的明滅控制,可為嵌入式開發(fā)學(xué)習(xí)提供入門參考。
關(guān)鍵詞: 嵌入式; S5PV210;GPIO
中圖分類號:TP338 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)15-0195-03
Abstract: Now, many colleges and universities have opened the relevant courses of embedded system, but there are many difficult for many students when they begin to learn NoOS embedded development. Based on the actual situation of the students in our college, this paper studies the control of LED on S5PV210 chip board. After understanding the LED circuit diagram and the connection relationship between LED and GPIO pin, we realized the control of LED by employing assembly language and C language t. This can provide introductory reference for learning embedded system development for many college students.
Key words: embedded system; S5PV210; GPIO
隨著電子科技技術(shù)的飛速發(fā)展,人們對各種便攜式智能電子設(shè)備的需求量劇增。目前,像智能手機(jī)、平板電腦、導(dǎo)航儀等嵌入式電子產(chǎn)品的功能越來越強(qiáng)大。很多便攜智能電子產(chǎn)品擁有觸摸屏、LCD或鍵盤等輸入\輸出設(shè)備,如同普通的個人電腦一樣可以網(wǎng)上沖浪、收發(fā)郵件、編輯各種文檔、瀏覽圖片、玩游戲、播放視頻和音樂等功能[1-2]。在工業(yè)控制領(lǐng)域系統(tǒng)級芯片(Chip on a System: SOC)可以有效降低電子設(shè)備產(chǎn)品的開發(fā)成本、縮短開發(fā)周期,使得一個嵌入式系統(tǒng)可以完成更多的控制功能[3],能增強(qiáng)產(chǎn)品的競爭力。本文以深圳雷邁特公司開發(fā)的嵌入式試驗(yàn)平臺為基礎(chǔ),通過GPIO(General Purpose Input Output:通用輸入/輸出)編程,實(shí)現(xiàn)了對核心板上LED燈的明滅控制,可以輔助嵌入式編程開發(fā)的調(diào)試,也為學(xué)習(xí)嵌入式開發(fā)的人員提供一個入門參考。
1 系統(tǒng)硬件
1.1 S5PV210處理器
韓國Samsung公司研發(fā)的S5PV210是一種適用于智能手機(jī)和平板電腦等嵌入式智能設(shè)備的嵌入式處理器[4]。雷邁特嵌入式試驗(yàn)平臺核心板處理器采用S5PV210,使用ARM CortexTM-A8內(nèi)核和ARM V7指令集。作為一個高性能的處理器,S5pv210運(yùn)行主頻為1GHZ,內(nèi)置PowerVR SGX540高性能圖形引擎,支持流暢的2D/3D圖形加速,擁有每秒運(yùn)算2億條指令集的高性能運(yùn)算能力[4-6]。整個Cortex-A8核心板擁多個在板資源,如有四個用戶LED燈、一個板載聲卡、網(wǎng)卡等??傊?,S5pv210具有低功耗、高性能等優(yōu)點(diǎn),并且具有完整的通用系統(tǒng)外部設(shè)備[5]。
1.2 GPIO
眾所周知,I/O(輸入/輸出)接口電路是連接主機(jī)和外部設(shè)備的部件,可以實(shí)現(xiàn)主機(jī)和外設(shè)的數(shù)據(jù)傳輸,也簡稱接口電路[7]。GPIO( General-Purpose IO ports) 是通用輸入/輸出端口,可以對 I/O 進(jìn)行讀寫操作 GPIO 操作是所有硬件操作的基礎(chǔ)[8]??梢酝ㄟ^設(shè)置GPIO對應(yīng)的寄存器相應(yīng)位的址完成某個引腳的用途,如用于輸入、 輸出或其他功能。S5PV210處理器擁有237個GPIO,可以實(shí)現(xiàn)多種系統(tǒng)功能[4]。S5PV210 的 GPIO 端口寄存器主要有控制寄存器、數(shù)據(jù)寄存器和上拉寄存器等,其中控制寄存器用于設(shè)置 GPIO 引腳的功能(如輸入/輸出/其他功能)、數(shù)據(jù)寄存器擁有設(shè)置引腳數(shù)據(jù)的讀寫、 上拉寄存器完成是否使用內(nèi)部上拉電阻的設(shè)置[4,5,8-12]。
2 LED控制的實(shí)現(xiàn)
2.1 LED電路原理
S5PV210核心板上有四個用戶LED燈,用戶可以通過編程來對其進(jìn)行控制。由于不同的開發(fā)板的電路是有差異的,控制LED燈的對應(yīng)GPIO端口也可能不同。因此,要控制本試驗(yàn)箱的Cortex-A8核心板上的四個LED燈,首先需要了解LED燈的電路圖,找到控制LED燈對應(yīng)的GPIO端口。然后,按照使用手冊中的說明對GPIO端口進(jìn)行設(shè)置,最終實(shí)現(xiàn)對LED燈的控制。Cortex-A8核心板上面帶有四個LED燈,其電路圖如圖1所示,LED與對應(yīng)的 GPIO 引腳連接關(guān)系如圖2所示[4]。
由以上兩個電路圖可知, 四個LED燈(LED1~LED4)分別對應(yīng)的 GPIO端口為 GPJ2_0 ~ GPJ2_3,通過對GPJ2_0~3引腳的高低電平來控制三極管的導(dǎo)通性實(shí)現(xiàn)LED燈的控制。圖1說明輸出低電平可以使LED燈亮,高電平使其滅。因此,控制LED明滅的步驟是:1)設(shè)置GPJ2對應(yīng)的控制寄存器GPJ2CON,將GPJ2_0~3四個引腳設(shè)置為輸出功能,可實(shí)現(xiàn)LED燈的控制;2)設(shè)置GPJ2對應(yīng)的,使引腳輸出低電平點(diǎn)亮LED燈,反之,數(shù)據(jù)寄存器GPJ2DAT相應(yīng)位設(shè)置為1則使對應(yīng)引腳輸出高電平熄滅對應(yīng)LED燈。
2.2 GPIO設(shè)置代碼
查閱使用說明手冊(文獻(xiàn)4)可知,GPJ2CON和GPJ2DAT對應(yīng)的地址分別為0xE0200280和0xE0200284,根據(jù)3.1節(jié)所給步驟,可以使用下面的C 語言代碼實(shí)現(xiàn)GPIO的設(shè)置,并實(shí)現(xiàn)對LED燈的明滅控制。
3 結(jié)束語
通過編寫裸機(jī)啟動匯編程序,啟動S5PV210,在匯編程序中調(diào)用本文給出的LED_blink函數(shù)。編譯通過后使用MiniTools工具將生成的裸機(jī)程序燒寫到開發(fā)板上,或者拷貝到SD中運(yùn)行后可以看到如圖3所示的運(yùn)行效果,在圖3中四個LED燈在不斷閃爍。
本文以三星公司的S5PV210處理器為實(shí)驗(yàn)對象,通過查閱LED電路原理圖和GPIO配置信息,使用C語言和匯編語言編寫了LED控制裸機(jī)程序,并燒寫到開發(fā)板上運(yùn)行,實(shí)現(xiàn)了LED燈控制的裸機(jī)編程,可為以后的裸機(jī)開發(fā)提供一種通過LED燈調(diào)試的途徑。
參考文獻(xiàn):
[1] 竇寅豐. 基于旋光色散原理的波長鑒別技術(shù)研究[D]. 哈爾濱: 黑龍江大學(xué), 2010.
[2] 張?jiān)娔? 針對大學(xué)生生活形態(tài)的消費(fèi)類電子產(chǎn)品設(shè)計(jì)研究[D]. 北京: 北京服裝學(xué)院, 2015.
[3] 李乃翠. 基于Android與Wi-Fi的實(shí)時(shí)視頻監(jiān)控系統(tǒng)的研究[D]. 濟(jì)南: 山東大學(xué), 2014.
[4] Samsung Electronics. S5PV210 RISC Microprocessor Users Manual, Revision 1.10[Z]. Republic of Korea: Samsung, 2010.
[5] 陳建明, 張亞軍, 沈媛雪. 基于Cortex-A8處理器與Android平臺的溫度檢測系統(tǒng)設(shè)計(jì)[J]. 華北水利水電大學(xué)學(xué)報(bào): 自然科學(xué)版, 2014(5): 69-71.
[6] 梁芳芳. 基于S5PV210的網(wǎng)絡(luò)溫濕度記錄儀實(shí)現(xiàn)[J]. 電子世界, 2014(7): 123-124.
[7] 吳志抄, 譚業(yè)雙, 李召瑞, 等. 基于可編程器件的通信檢測系統(tǒng)接口設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2014(10): 72-75.
[8] 李文釗. 基于Android平臺的GPIO操控方法[J]. 數(shù)字技術(shù)與應(yīng)用, 2013(11): 151-152.
[9] 王莉莉. 基于S5PV210數(shù)碼相框的設(shè)計(jì)與實(shí)現(xiàn)[J]. 山西電子技術(shù), 2015(1): 32- 33+ 57.
[10] 單桂峰. 基于三星S5PV210處理器的智能家居控制系統(tǒng)設(shè)計(jì)[J]. 電子世界, 2014(12): 133-134.
[11] 張光南. 基于S5PV210的智能家居系統(tǒng)設(shè)計(jì)[J]. 電子設(shè)計(jì)工程, 2014(8): 172-174.
[12] 熊瓊, 師衛(wèi), 騰生強(qiáng). 基于ARM cortexTM-A8與Android的智能家居系統(tǒng)[J]. 電視技術(shù), 2014(9): 85-88, 159.