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