主要研究內容是與Linux和Qt5有關,通過對Linux系統的移植掌握Uboot編譯,Linux內核裁剪,文件系統掛載等相關操作,還熟悉驅動的掛載和卸載,設備樹的編寫等。
通過編寫Qt5應用程序,了解C++語言編程,明白槽和信號的運行機制,熟悉各個模塊之間的調用關系。
本系統分為硬件部分設計,系統部分設計,應用部分設計三大部分。硬件部分設計包括從器件選型開始,主控芯片,屏幕,揚聲器,電池管理等,再到原理圖繪制,PCB布局布線,嘉立創打板,焊接等一系列流程。
系統部分設計包括交叉編譯器安裝,Uboot移植,Linux內核裁剪編譯,文件系統裁剪掛載,Tslib移植,Mplayer移植,Qt移植,驅動程序移植,驅動程序編寫,腳本語言編寫等。
應用部分包括視頻播放,音樂播放,照片播放,查看日期時間,查看天氣,查看溫濕度,查看設置,閱讀電子書,使用記事本,使用計算器,玩nes游戲等。
通過對這三大部分的設計,完成一個具備平板部分功能的設備。
設計分析
1.硬件電路設計分析
硬件電路設計主要分為好幾個模塊進行開發,這樣開發的好處就是模塊之間可以組合使用,在后續開發別的產品時能充分利用。
大致可以分為四個模塊:
主控核心板
主控底板
充放電管理模塊
串口調試模塊
充放電管理模塊主要就是負責電池管理,充電,放電,電池保護等。
串口調試模塊主要在開發階段使用,通過打印信息到PC終端可以對設備軟件部分進行開發,調試,設計完成之后就不需要了。
主控核心板主要是主控和其外圍電路,構成一個最小系統,單個主控板就可以使用,可以隨意的擴展底板,做音樂播放器,做網絡攝像頭,做語音助手都可。
主控底板就是簡易平板的核心外圍器件,主要有耳機接口,功放芯片,時鐘芯片,屏幕接口,觸摸接口,WIFI模塊,震動馬達接口,麥克風,一鍵開關機電路,陀螺儀芯片,溫濕度芯片,LED和少許按鍵等。
通過這些外圍器件構成簡易平板和外界進行信息交換的渠道。
2.系統移植設計分析
這一部分是核心部分,也是最為復雜的部分,但又是最容易使用的部分,因為這部分一般都是芯片原廠開發,然后提供給用戶使用。
也就是說關于這部分是可以通過簡單配置直接使用的。
首先就是Uboot編譯,Uboot是一段啟動代碼,和芯片底層進行打交道,包括系統時鐘配置,DDR初始化等一系列操作。
Uboot啟動之后會進行設備樹和Linux內核加載,需要我們移植Linux內核,Linux內核整個十分龐大,我們只需要移植需要的部分,也就是需要進行內核裁剪,裁剪編譯之后我們就需要掛載文件系統,文件系統是后續文件存儲的部分,也是直接接觸的部分。
關于文件系統有好幾種選擇,可以選擇最小文件系統,只有十幾MB大小,也可以選擇Debian系統,分為帶桌面和不帶桌面的。
文件系統的編譯,也有好幾種方式,本系統采用Buildroot進行編譯最小文件系統。
3.驅動開發設計分析
在前面我們進行了硬件開發和系統移植,接下來就進行驅動開發,這部分主要就是對硬件設計部分進行開發,用設備樹進行引腳功能定義,用Linux內核進行驅動開發,可以編譯成Ko模塊加載,也可以直接編譯進內核,直接編譯進內核之后,上電會自動加載。
需要進行驅動開發的有以下器件。
WIFI模塊驅動開發去進行聯網,時鐘模塊驅動開發進行時間顯示,溫濕度模塊開發進行溫濕度獲取,震動馬達驅動開發去控制馬達震動,觸摸驅動開發去使能屏幕觸摸效果,一鍵開關機電路驅動開發實現開關機,按鍵開發進行音量設置,還有以太網驅動開發,RGB屏幕驅動開發,麥克風驅動開發等。
通過編寫驅動程序,簡易平板就可以和外界進行信息交換,為后面應用開發做準備。
驅動開發是最為復雜的,最容易出錯的,最費時間的,最不容易找到問題的。
4.應用開發設計分析
驅動開發之后,說明本設計已經具備和外界進行信息交換的能力,但具體如何去做,需要去進行應用開發。
應用開發也就是在Linux系統上使用系統應用函數API去和硬件驅動打交道。
本系統設計的是簡易平板,肯定要實現平板所能做的一些事情,視頻播放,音樂播放,圖片播放,溫濕度獲取,天氣查詢,閱讀電子書,查看時間,查看日歷,記事本,NES游戲,屏幕背光調節,手電筒等。
應用程序通過Qt5進行編寫,Qt是一個可跨平臺的,靈活性高的開發軟件,簡單好移植,可以很好的應用在嵌入式設備上。
5.3D外殼設計分析
在設計的最后階段,要進行簡易平板的包裝,不能給用戶一個裸板去使用。
用立創EDA專業版進行3D外殼的設計,操作簡單,并且可以在繪制完電路板之后直接在畫的PCB文件中進行設計,不用PCB設計軟件和3D建模軟件之間來回切換,大大節省了開發時間。
3D外殼設計的時候要注意幾個點,首先要保證散熱,不能全封死,對于按鍵,SD卡槽,USB接口,耳機口這些要進行開槽處理,屏幕部分可直接包住,屏幕外邊框不顯示。
設計框圖
1.整體設計框圖
該框圖介紹了整體設計的思路,先從硬件電路出發,經過系統移植、驅動開發、應用開發和3D設計的操作,一步一步介紹構造簡易平板的全過程。
2.硬件電路設計框圖
該框圖介紹了簡易平板的硬件構成,包括一些器件的選型和對應功能電路,比如一鍵開關機、耳機功放切換電路等,可見設計一個產品需要包含很多的器件。
3.系統移植設計框圖
該框圖介紹了簡易平板的系統移植,從三個方面出發,Uboot移植,Linux內核裁剪到最后的文件系統編譯,介紹了Linux系統硬件平臺的系統層面的基本操作。
4.應用開發設計框圖
該框圖介紹了簡易平板的應用APP,可以直觀的看到簡易平板開發了豐富的應用程序,這些基本的應用程序可以滿足日常的需求,介紹了一個產品需要眾多軟件的支持。
硬件設計
1.核心板介紹
核心板設計大小為3cm * 5cm,采用四層板進行設計。
核心板設計的目的是為了方便擴展,主要是構建基于主控的最小系統,單核心板就能夠運行。
核心板設計硬件包括全志的V3S主控芯片,以及一些V3S的外圍電路,晶振,復位等,還使用了一個DCDC芯片EA3036可提供3路電源,用來給V3S提供電源。
和底板連接接口使用MINI PCIE接口,MINI PCIE可以引出56個引腳,核心板上引出RGB屏幕的FPC排座,這樣去掉RGB屏幕的引腳,剩下的引腳基本上可以全部引出。
核心板還板載了一顆W25N01GVZEIG存儲芯片,可用來存儲系統,然后不需要SD卡運行啟動。
2.底板介紹
底板設計大小為7.6cm * 10cm,采用兩層板進行設計。
底板設計的主要功能就是構造簡易平板所需的功能,包括一鍵開關機電路,電池接口,RTL8723BS WIFI藍牙模塊,耳機,8002B功放芯片,DS3231時鐘芯片,SHT30溫濕度芯片,MPU6050陀螺儀芯片,震動馬達接口,SD卡接口,音量加減鍵,關機鍵,復位鍵,還板載了RGB屏幕背光電路等。
通過底板上這些器件的運行可以保證實現本系統所需要的功能。
3.硬件電路原理圖分析
1.全志V3S主控芯片原理圖設計
本系統使用的主控芯片是全志的V3S,是ARM Cortex-A7架構,主頻最高支持1.2GHz,空載運行電流 90~100mA,滿載運行電流~180mA,集成 64MB DDR2,可從8~32MB SPI Nor Flash、128MB Nand Flash和SD卡等設備啟動。
有一個RGB666屏幕接口,支持常見的 272x480, 480x800,1024x600 等分辨率。
擁有一路100M Ether接口(含 EPHY),一路OTG USB接口,兩路Speaker接口和一路Mic接口等資源,非常適合開發多媒體設備,滿足簡易平板的應用需求。
2.EA3036電源芯片原理圖設計
本系統使用的電源芯片是一款DCDC器件,型號為EA3036,EA3036采用20針QFN 3X3封裝,EA3036支持2.7-5.5V范圍輸入,0.6V參考電壓。
EA3036為三路輸出,每路輸出可實現2A持續輸出能力,并提供獨立的使能端進行電源管理和上電時序控制。本系統的三路電源輸出分別為1.2V、1.8V和3.3V。
3.RGB屏幕接口原理圖設計
這款芯片自帶有RGB666的接口,所以可以驅動RGB的屏幕。
RGB666表示數據有16位,分別是R6位,G6位,B6位,這些都是數據線,另外還有行同步信號,列同步信號,時鐘信號等。
RGB屏幕是一個通用接口,是市面上最為常見的屏幕之一,應用非常廣泛。本系統原理圖畫的是正點原子的屏幕接口,并且帶電容觸摸。
4.MINI PCIE接口原理圖設計
本系統是設計為核心板加底板的方式,那必然核心板上要留出接口。
關于接口,前期也了解很多,比如排針,BTB連接器,DDR,M.2,MINI PCIE等等。
最終選擇了MINI PCIE,因為MINI PCIE的引腳個數正好合適,間距為0.8mm,而與之相似的M.2的間距為0.5mm,PCB繪制的時候不好連線。
經過層層考慮,最終選擇了MINI PCIE接口進行核心板與底板的連接。
5.PT4103B23F升壓芯片原理圖設計
PT4103是一款升壓型DC/DC轉換器,設計用于從單電池鋰離子電池以恒定電流驅動多達8個串聯的白色LED。
由于PT4103直接調節輸出電流,因此它非常適合驅動發光二極管(LED),而RGB的屏幕背光正好是多個LED進行連接,這款芯片用來驅動背光再好不過。
6.RT9193穩壓芯片原理圖設計
RT9193是一款LDO芯片,輸出電壓為3.3V,選擇封裝為SOT-23-5,非常小巧,并且外圍電路也不多,容易嵌入到系統板上。
RT9193提供了穩定可靠的電源,只要輸入電壓在一定的范圍內,輸出電壓永遠保持在3.3V。
7.一鍵開關機原理圖設計
生活中的便攜式電子產品都具有開關機按鍵,比如手機電源鍵就是一種非常典型的一鍵開關機,長按開機,長按關機。
除了手機以外的其它電子產品,也可以使用這種方法,給用戶良好的體驗。
本系統就是基于用戶體驗的角度,在系統底板上加入了一鍵開關機電路,方便用戶對簡易平板進行操作。
8.DS3231時鐘原理圖設計
DS3231是一款精度很高的實時時鐘芯片,內置自動補償電路。
可以自動調整月份和日期,還有閏年補償功能,時鐘的工作格式可以有兩種模式,24小時模式或者12小時模式。
DS3231內部集成了可編程的鬧鐘,并且支持兩路,DS3231這個實時時鐘不僅可以提供準確的走時而且還能保持斷電走時,極大保障了系統時間的準確性。
9.麥克風原理圖設計
全志V3S集成了音頻ADC,可以外接一個麥克風,通過麥克風可以獲取外界的聲音,然后存儲起來,可以實現錄音的功能。
還可以開發軟件部分,使其支持語音識別,可以實現語音助手的功能。
10.耳機和8002B功放原理圖設計
全志V3S不僅支持音頻ADC,還支持播放音頻,可以接一路耳機,有左右雙通道。
雖然插上耳機就可以播放音頻,但畢竟還是需要有耳機才能播放。
在設計上加入一個功放芯片8002B,通過功放外接一個喇叭就可以支持聲音外放。
而且設計過程中對耳機和功放部分做了處理,使插上耳機的時候耳機播放,不插耳機的時候就外放。
11.RTL8723BS WIFI藍牙原理圖設計
RTL8723BS是一款小尺寸,小巧的WiFi + BT組合模塊,電路板尺寸為12mm * 12 mm,高度為1.6mm。
常適合平板電腦,超極本,移動設備和消費類產品。
它提供用于WiFi的GSPI/SDIO接口與主機處理器連接以及用于BT的高速UART接口,WiFi的吞吐量理論上可以達到150Mbps。
本系統設計模塊的初衷就是為了方便聯網,畢竟作為一個移動設備,不可能一直插網線這種方式,并且這款模塊還支持藍牙,相當于一個模塊就繼承了WiFi和藍牙,非常適合本系統。
12.MPU6050陀螺儀原理圖設計
MPU6050是一款陀螺儀芯片,內置陀螺儀和加速度計,可以通過檢測當前的姿態來判斷當前的平板的姿態位置。
本系統設計的目的是為了實現重力感應,自動翻轉屏幕,充當計步器等功能。
13.SHT30溫濕度原理圖設計
SHT30是一款溫度和濕度傳感器。它的封裝為DFN-8,封裝外形為2.5mm * 2.5mm,同時保持0.8mm的高度,這意味著可以將它集成到多種應用中。
本系統設計的目的是為了能夠實時獲取外界環境的溫度和濕度,給用戶一個直觀的體驗。
14.震動馬達原理圖設計
震動馬達是一個可以發生震動的器件,通過一個三極管就可以驅動。
諸如手機一樣,當設置為震動模式的時候,不會發出聲音,但是手機本身發出震動。
本系統就是基于這樣的設計思想,當簡易平板設置為震動模式的時候,一旦有外界消息震動馬達就會發出震動,以提醒用戶及時查看消息。
PCB分析
1.核心板PCB分析
核心板PCB為四層板,最小線寬為4mil,是嘉立創四層板所支持的最小工藝。
整體設計為兩面都有器件,因為核心板只有設計的比較小,才能更方便的集成到應用中去。
正面放置EA3036 DCDC器件,主控芯片V3S,和RGB屏幕接口FPC,FPC放到正面是為了方便后續接屏幕。
背面大多是一些電容電阻和一個W25N01GVZEIG備用,W25N01GVZEIG默認是不焊接的。
在內層1對電源進行了分割,主要有VBUS,1V2,3V0,3V3等。
在內層進行電源分割,不僅方便布線,還增強系統的可靠性。
2.底板PCB分析
底板PCB為兩層板,最小線寬為6mil,嘉立創雙面板線寬最小支持5mil。
整體設計為只有背面有器件,因為正面是把整個屏幕貼上去,這個在設計的時候需要考慮屏幕的排線,在對應的位置進行開槽處理,方便排線連接。
還有就是電源開關和音量開關的位置要放在合適的位置,方便我們去操作。
還有type-c接口、麥克風、耳機口,SD卡槽的位置等都需要去考量;屏幕FPC的位置要和核心板上FPC接口是順的,也就是FPC排線連接是順的,不能交叉打結。
MPU6050的位置最好放到板子的正中間,這樣測量結果是最正確的。RTL8723BS的天線部分不要覆銅。
測試效果
1.主界面測試
主界面是程序啟動就進入的界面,里面羅列了十幾款APP應用,可滑動翻頁,點擊對應的APP圖標會進入到對應的APP應用界面。
2.音樂播放測試
音樂播放界面實現了歌詞根據進度條滾動顯示,有可暫停、可上一曲,可下一曲等功能,會顯示當前播放進度和總進度時長,可滑動滾動條跳轉音樂播放進度。
3.電子書測試
電子書分為兩個界面,點擊電子書圖標會進入書架界面,會列舉當前文件中的書籍信息,選擇對應的書籍可以進入閱讀界面,在閱讀界面可以修改背景顏色和文字顏色等。
4.天氣預報測試
點擊天氣圖標會進入到天氣查詢界面,輸入對應的城市名點擊查詢按鈕,即可顯示當前的溫度和風向等信息,在最下面還會有溫馨提示。
點擊左上角的切換按鈕可以查看未來幾天的天氣情況,提醒注意防護。
5.計算器測試
點擊計算器圖標會進入到計算器界面,里面有一張背景圖片和按鈕形成對比,方便使用按鈕進行操作,支持連續加減乘除運算,計算結果大字顯示,方便獲取。
6.設置界面測試
點擊設置圖標會進入到設置界面,在設置界面可以設置WIFI,藍牙,聲音,顯示,日期等操作,點擊關于選項會進入關于界面顯示一些系統的內存大小,版本等信息。
結論
本文主要介紹了簡易平板的設計與實現,該系統從硬件設計開始,經過系統移植,驅動開發,應用開發,外殼設計等操作,已經涵蓋了一個產品從設計到生產的基本過程。
硬件設計也是很有門道的,稍微有一點地方不對,就需要重新打板子。
本系統從設計開始到最后的成品,一共做過兩塊開發板、三塊核心板和三塊底板,相當于光板子就做了八塊,其中多次涉及兩層板和四層板,還包含電源分割和一些常規的注意事項。
通過設計本系統,可以加強對硬件設計部分的基本操作,可以熟練進行PCB設計。
系統部分主要涉及Linux系統的知識,通過對Uboot、Linux內核和Rootfs的編譯,熟練配置交叉編譯器,了解Makefile的執行機制和編程規范,能對.config文件進行修改和添加。
驅動開發主要操作是對硬件底層的操作,需要看懂器件的使用手冊,能用通信協議驅動器件,知道如何用設備樹去配置引腳,如何靈活的使用驅動框架等。
應用開發主要涉及Qt知識,能熟練使用C++編程語言,明白信號和槽的機制,會一點UI設計,能對圖片進行基本處理等。
外殼設計主要是對一些3D圖形進行處理,能熟練對PCB進行外殼設計,知道如何開孔,如何設置固定孔等。
通過對本系統進行設計,可以掌握很多知識,對于自身能力也是一種提高。
在本課題簡易平板的設計與開發的過程中查閱了很多相關資料,提供了很多的思路,也借鑒了其中設計好的部分。
本系統基于Linux和Qt5進行開發設計,操作系統加UI的設計方向是移動設備的一種常規操作。
只有每一步都設計合理,最后的成品才會實現它應有的功能。
雖然本系統設計的時間周期很長,但由于所涉及的知識龐雜,需要開發的內容較多,設計過程中難免會有設計缺陷和功能不完善之處,希望多多指正。
在后續的時間里,還會繼續開發一些功能和修改一些缺陷,使功能更加完善,系統更加健全。
審核編輯:劉清
-
電池管理
+關注
關注
27文章
553瀏覽量
42951 -
Linux系統
+關注
關注
4文章
593瀏覽量
27392 -
Uboot
+關注
關注
4文章
125瀏覽量
28214 -
交叉編譯器
+關注
關注
0文章
10瀏覽量
7538
發布評論請先 登錄
相關推薦
評論