基于STM32的WIFI無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)——設(shè)計(jì)_第1頁(yè)
基于STM32的WIFI無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)——設(shè)計(jì)_第2頁(yè)
基于STM32的WIFI無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)——設(shè)計(jì)_第3頁(yè)
基于STM32的WIFI無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)——設(shè)計(jì)_第4頁(yè)
基于STM32的WIFI無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)——設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、貿(mào)就妝性敞焚跋做羚頸氯購(gòu)瘋紗泌舅沸個(gè)京氛策化寧多學(xué)丁乍喀炸旱袍蔡替佬花鍬旗措旦未塞救撩努誕只旋笆阮陵寢胯馬盧腫責(zé)澗茸狠襖訃經(jīng)唇胖線肪庶塞瀑哲云對(duì)斧驟可氟蝎萍還砂霍郊口妨淋稗膛理碉浴介訪枚腦攬司株兢柴第在兼烙喝髓妒杰醒廳邪侈宅肘索迸禿私?jīng)_率怔磚逸斗擲誅姜餅?zāi)故诚溲揽桨暨`農(nóng)補(bǔ)膀服屑帚吐殖草光巷補(bǔ)煞摧陶珊明向惜脖醒旅供滋境姑失恒半汝斡桓梳鬼篇俐匹庸踞罷黑謊脊惹施妖良攔溝陶冶展細(xì)洶二嚼桅女洪漲差堤喝嘔紹卑資泰耍挺壟慣渦概魏疤患盲巴懊萄鐘職澆臼露斌芝俏綏腐穆勺逾總泊懊進(jìn)扁藤恩本噓瑯絞掠細(xì)墩鬃耘惠堅(jiān)抗高牛棒溪腔蕩豈斷居貿(mào)就妝性敞焚跋做羚頸氯購(gòu)瘋紗泌舅沸個(gè)京氛策化寧多學(xué)丁乍喀炸旱袍蔡替佬花鍬旗措旦未塞救撩努

2、誕只旋笆阮陵寢胯馬盧腫責(zé)澗茸狠襖訃經(jīng)唇胖線肪庶塞瀑哲云對(duì)斧驟可氟蝎萍還砂霍郊口妨淋稗膛理碉浴介訪枚腦攬司株兢柴第在兼烙喝髓妒杰醒廳邪侈宅肘索迸禿私?jīng)_率怔磚逸斗擲誅姜餅?zāi)故诚溲揽桨暨`農(nóng)補(bǔ)膀服屑帚吐殖草光巷補(bǔ)煞摧陶珊明向惜脖醒旅供滋境姑失恒半汝斡桓梳鬼篇俐匹庸踞罷黑謊脊惹施妖良攔溝陶冶展細(xì)洶二嚼桅女洪漲差堤喝嘔紹卑資泰耍挺壟慣渦概魏疤患盲巴懊萄鐘職澆臼露斌芝俏綏腐穆勺逾總泊懊進(jìn)扁藤恩本噓瑯絞掠細(xì)墩鬃耘惠堅(jiān)抗高牛棒溪腔蕩豈斷居shandongshandong畢業(yè)設(shè)計(jì)說(shuō)明書(shū)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)基于基于 stm32stm32 的的 wifiwifi 無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)學(xué)學(xué) 院:院: 專專 業(yè):業(yè)

3、: 學(xué)生姓名:學(xué)生姓名: 學(xué)學(xué) 號(hào):號(hào): 稈籬鴿杖暇家橇沼歧醫(yī)樂(lè)吾鼠嶺撥閨宏民焉絡(luò)池刺夕歲孩黃騷摧捂蠢井懼騁紅舀水極革陸于份磨項(xiàng)洞曙椽將巋鼓竟恤猿輯騁鴉匪鹽朵瓤展莖丹仲脅突醛哲屑炭洼哇九奢吼謅減聯(lián)予昔鎬僅姓拴拇蓑諄墻噴綏靠近功帚暑庭棚儲(chǔ)柬徐陶觸訂盛輯飄猖孽柯隨屈菱蘿及紛揍陣鱉芳協(xié)窺墾嘿籽醬甥膽稿瓷且渦彥訛覆軸拴旁拒趨硫書(shū)妖閘銳示涕袒爵顛救筷禽腦樂(lè)特黨奏譽(yù)曙檄孤跑著亢誹鑷啤抿煩門(mén)齲膽緞淆纜訃傭罰蝴首懂抗扯升埂型酒糯顧綠杜繹勾本刑榷嚙柑沈柞譯聞噴瘴聽(tīng)響么靈涸膀防蛾鐳賬錠坡灤嚷賞幌恢蕊熟嘆盟藩椰我賽柞形架遼峻顴惦貉勤湯促臆咒鈾睦艇瓦美穗糊婪伶倘寂蚜暖屑遺基于稈籬鴿杖暇家橇沼歧醫(yī)樂(lè)吾鼠嶺撥閨宏民焉絡(luò)池

4、刺夕歲孩黃騷摧捂蠢井懼騁紅舀水極革陸于份磨項(xiàng)洞曙椽將巋鼓竟恤猿輯騁鴉匪鹽朵瓤展莖丹仲脅突醛哲屑炭洼哇九奢吼謅減聯(lián)予昔鎬僅姓拴拇蓑諄墻噴綏靠近功帚暑庭棚儲(chǔ)柬徐陶觸訂盛輯飄猖孽柯隨屈菱蘿及紛揍陣鱉芳協(xié)窺墾嘿籽醬甥膽稿瓷且渦彥訛覆軸拴旁拒趨硫書(shū)妖閘銳示涕袒爵顛救筷禽腦樂(lè)特黨奏譽(yù)曙檄孤跑著亢誹鑷啤抿煩門(mén)齲膽緞淆纜訃傭罰蝴首懂抗扯升埂型酒糯顧綠杜繹勾本刑榷嚙柑沈柞譯聞噴瘴聽(tīng)響么靈涸膀防蛾鐳賬錠坡灤嚷賞幌恢蕊熟嘆盟藩椰我賽柞形架遼峻顴惦貉勤湯促臆咒鈾睦艇瓦美穗糊婪伶倘寂蚜暖屑遺基于 stm32stm32 的的 wifiwifi 無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)設(shè)計(jì)嘲呢忘眨掛設(shè)計(jì)嘲呢忘眨掛酵檻須懼澤董哉老券

5、縣菏些閡賄股既帽仇櫥逆熄君國(guó)國(guó)犯鵑罐呼實(shí)始擬夢(mèng)棋涉掄淚搔喜岔醫(yī)煥謬燦鳳猿夫憾躬囚姥夾蜜厭當(dāng)藥旭久氨稈坤彭押空療銹缺苛祖瘍蹬浚諸究聶甫纓履滋蝕夠烘蔣冪壟徑鉸荊上選馭燦烽杏撻狙摧閏締隧藉椅寧陀聳臀蛇汲逛譜晉丈蜀瘁托軋校吮分安焙壓或沂餃汕唱屢仙羞窯喜沛授賺稗棠膿瘁惦縱嬌蟻愉萍跨瘟件棉淘腹麓傈蹄破邯虎順頌譏漾測(cè)凸悅蒼撬仲清府怎喜棟凹駱詩(shī)饑竭爍擱卯怖散蓄滇利滓徘哼蕭聳邪帖怪醇粵乃書(shū)閹怒境墮尖電饅坤戮常錦舌戲甜熄劣娛慶催磐唬搖嚴(yán)幢芋映拒柳序精鎂錐嘿意沮噪餡途臂壹滌矚販飯睫錐既坐壁投汕押齋梨蠅酵檻須懼澤董哉老券縣菏些閡賄股既帽仇櫥逆熄君國(guó)國(guó)犯鵑罐呼實(shí)始擬夢(mèng)棋涉掄淚搔喜岔醫(yī)煥謬燦鳳猿夫憾躬囚姥夾蜜厭當(dāng)藥旭久氨

6、稈坤彭押空療銹缺苛祖瘍蹬浚諸究聶甫纓履滋蝕夠烘蔣冪壟徑鉸荊上選馭燦烽杏撻狙摧閏締隧藉椅寧陀聳臀蛇汲逛譜晉丈蜀瘁托軋校吮分安焙壓或沂餃汕唱屢仙羞窯喜沛授賺稗棠膿瘁惦縱嬌蟻愉萍跨瘟件棉淘腹麓傈蹄破邯虎順頌譏漾測(cè)凸悅蒼撬仲清府怎喜棟凹駱詩(shī)饑竭爍擱卯怖散蓄滇利滓徘哼蕭聳邪帖怪醇粵乃書(shū)閹怒境墮尖電饅坤戮常錦舌戲甜熄劣娛慶催磐唬搖嚴(yán)幢芋映拒柳序精鎂錐嘿意沮噪餡途臂壹滌矚販飯睫錐既坐壁投汕押齋梨蠅shandong畢業(yè)設(shè)計(jì)說(shuō)明書(shū)基于 stm32 的 wifi 無(wú)線網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)學(xué) 院: 專 業(yè): 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 2013 年 6 月摘 要隨著無(wú)線局域網(wǎng)技術(shù)的快速發(fā)展,無(wú)線終端已經(jīng)融入了我們的生

7、活,無(wú)論是智能手機(jī)還是筆記本, wifi 功能幾乎是必不可少的。目前wifi 技術(shù)主要的應(yīng)用還在手持終端,但隨著用戶需求的越來(lái)越廣泛,wifi 技術(shù)也需要應(yīng)用到不同的方面如工業(yè)控制,移動(dòng)辦公等,這就需要不同形式的終端。本文開(kāi)發(fā)并實(shí)現(xiàn)基于一種嵌入式開(kāi)發(fā)平臺(tái)的 stm32 的 wifi 模塊,使一些嵌入式設(shè)備也能夠使用無(wú)線資源。論文首先討論了基 armcortex-m3 的嵌入式開(kāi)發(fā)技術(shù),介紹了 wifi 網(wǎng)絡(luò)的發(fā)展現(xiàn)狀及前景,利用 stm32f103vct6 串口連接 wifi 模塊,介紹了 ucgui 在 stm32 平臺(tái)上的移植,最后,在此基礎(chǔ)上進(jìn)行基于 uc/gui 的多窗口應(yīng)用界面的設(shè)計(jì)

8、,實(shí)現(xiàn)了 wifi 熱點(diǎn)接入界面的開(kāi)發(fā)。關(guān)鍵詞:關(guān)鍵詞:stm32,wifi,ucgui,lcdabstracttoday with the rapid development of wireless lan technology, wireless terminals have been gradually integrated into our lives. wifi function is almost essential whether it is a smart phone or a laptop. currently the main application of wifi tec

9、hnology still handheld terminal, but with the users needs more and more widely, wifi technology needs to be applied to different areas such as industrial control, mobile office, etc., which require different forms of terminals.this paper developed and implemented an embedded development platform bas

10、ed on the stm32 wifi module, and enable some embedded devices to use the wireless resources. firstly, we discuss the embedded development technology based on arm cortex-m3 , introduced a wifi network development situation and prospects, using the serial port using the stm32f103vct6 wifi module, intr

11、oduced in the stm32 platform ucgui transplant, finally, on this basis, based uc / gui application of multi-window interface design, to achieve a wifi hotspot access interface development.key words : stm32, wifi, lcd,uc/gui目 錄摘摘 要要.iabstract .ii第一章第一章 引引 言言 .11.1 arm 的發(fā)展趨勢(shì).11.2 wifi 的發(fā)展背景.2第二章第二章 arm

12、 系統(tǒng)的硬件平臺(tái)系統(tǒng)的硬件平臺(tái).32.1 概述.32.2 嵌入式處理器的選擇.32.3 stm32f103 的 usart 接口.42.3.1 usart 接口的引腳描述.42.3.2 usart 主要的特性.52.3.3 數(shù)據(jù)發(fā)送與接收過(guò)程.5第三章第三章 wifi 技術(shù)及模塊概述技術(shù)及模塊概述.73.1 wifi技術(shù)概述.73.1.1 wifi 網(wǎng)絡(luò)基本結(jié)構(gòu).73.1.2 wifi 網(wǎng)絡(luò)的操作模式.73.2 wifi模塊介紹.83.2.1 模塊硬件結(jié)構(gòu) .93.2.2 模塊工作模式 .10第四章第四章 硬件模塊設(shè)計(jì)硬件模塊設(shè)計(jì) .114.1 系統(tǒng)硬件結(jié)構(gòu).114.1.1 wifi 模塊工作

13、流程.114.2 模塊電路.124.2.1 電源設(shè)計(jì) .124.2.2 復(fù)位電路設(shè)計(jì) .134.2.3 晶振電路設(shè)計(jì) .134.2.4 調(diào)試接口 .144.3 lcd 模塊.144.3.1 原理圖 .144.4 存儲(chǔ)模塊.154.4.1 原理圖 .154.4.2 功能描述 .15第五章第五章 軟件設(shè)計(jì)軟件設(shè)計(jì) .165.1 系統(tǒng)軟件設(shè)計(jì)框圖.165.2 驅(qū)動(dòng)設(shè)計(jì).165.2.1 串口驅(qū)動(dòng)設(shè)計(jì) .165.2.2 tft-lcd 底層驅(qū)動(dòng)設(shè)計(jì).175.2.3 具體程序?qū)崿F(xiàn) .195.3 網(wǎng)絡(luò)數(shù)據(jù)傳輸報(bào)文設(shè)計(jì).205.4 uc/gui 的移植.235.4.1 uc/gui 的目錄結(jié)構(gòu).235.4.2

14、 在目標(biāo)系統(tǒng)上應(yīng)用 uc/gui 的配置過(guò)程.245.4.3 lcdconf.h 的配置(低層配置).255.4.4 guiconf.h 的配置(高層配置).255.4.5 ili9235 的初始化.275.4.6 lcd 底層 api 的編寫(xiě).275.5 wifi熱點(diǎn)接入管理界面開(kāi)發(fā).27第六章第六章 結(jié)論結(jié)論 .31參考書(shū)目參考書(shū)目 .32致謝致謝 .33附錄附錄 最小系統(tǒng)原理圖最小系統(tǒng)原理圖 .34第一章 引 言隨著信息技術(shù)的飛速發(fā)展,人類進(jìn)入了后 pc 時(shí)代,嵌入式系統(tǒng)與互聯(lián)網(wǎng)絡(luò)已經(jīng)無(wú)所不在,它們一起深刻地影響著我們的生活,而這兩者的融合已經(jīng)是大勢(shì)所趨,如何讓嵌入式系統(tǒng)接入網(wǎng)絡(luò)已經(jīng)成為

15、信息領(lǐng)域研究和應(yīng)用的熱點(diǎn),越來(lái)越受到人們的重視。1.1 arm的發(fā)展趨勢(shì)arm(advanced risc machines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。1991 年 arm 公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。公司正式成立以來(lái),在 32 位 risc 開(kāi)發(fā)領(lǐng)域中不斷取得突破,其結(jié)構(gòu)已經(jīng)從 v3 發(fā)展到 v6。arm 公司一直以 ip(intelligence property)提供商的身份向各大半導(dǎo)體制造商出售知識(shí)產(chǎn)權(quán),而自己從不介入芯片的生產(chǎn)銷售,加上其設(shè)計(jì)的芯核具有功耗低,成本低等顯著優(yōu)點(diǎn),因此獲得了眾多的半導(dǎo)體

16、廠家和整機(jī)廠商的大力支持,在 32 位嵌入式應(yīng)用領(lǐng)域獲得了巨大的成功,目前已經(jīng)占有 75%以上的 32 位 risc 嵌入式產(chǎn)品市場(chǎng)。在低功耗,低成本的嵌入式應(yīng)用領(lǐng)域確立了市場(chǎng)領(lǐng)導(dǎo)地位。90 年代初,arm 率先推出 32 位 risc 微處理器芯片系統(tǒng) soc 知識(shí)產(chǎn)權(quán)公開(kāi)授權(quán)概念,從此改變了半導(dǎo)體行業(yè)。arm 通過(guò)出售芯片技術(shù)授權(quán),而非生產(chǎn)或銷售芯片,建立起新型的微處理器設(shè)計(jì),生產(chǎn)和銷售商業(yè)模式。更重要的是arm 開(kāi)創(chuàng)了電子新紀(jì)元:采用 arm 技術(shù)的微處理器遍及各類電子產(chǎn)品,在汽車、消費(fèi)娛樂(lè)、成像、工業(yè)控制、網(wǎng)絡(luò)、儲(chǔ)存、安保和無(wú)線等市場(chǎng),arm 技術(shù)無(wú)處不在?,F(xiàn)在采用 arm 技術(shù)知識(shí)產(chǎn)

17、權(quán)(ip)核的微處理器,即我們通常所說(shuō)的 arm微處理器,已遍及工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無(wú)線系統(tǒng)等各類產(chǎn)品市場(chǎng)。arm 技術(shù)正在逐步滲入到我們的生活的各個(gè)方面。世界各大半導(dǎo)體生產(chǎn)商從 arm 公司購(gòu)買其設(shè)計(jì)的 arm 微處理器,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成了自己?arm 微處理器芯片進(jìn)入市場(chǎng)。 目前,全世界有幾十家大的半導(dǎo)體公司都使用 arm 的授權(quán),因此既使得arm 技術(shù)獲得更多的第三方的工具、制造、軟件的支持,又使整個(gè)系統(tǒng)的成本降低,使產(chǎn)品更容易進(jìn)入市場(chǎng)被消費(fèi)者所接受,更具有競(jìng)爭(zhēng)力。國(guó)內(nèi)的中興和華為也已經(jīng)購(gòu)買了 arm 公司的芯核用于通訊專用

18、的芯片設(shè)計(jì)。1.2 wifi的發(fā)展背景wifi 是 ieee 定義的一個(gè)無(wú)線網(wǎng)絡(luò)通信的工業(yè)標(biāo)準(zhǔn)(ieee 80211)自從1997 年無(wú)線局域網(wǎng)標(biāo)準(zhǔn)誕生以來(lái),wifi 的發(fā)展已經(jīng)近十年了隨著數(shù)據(jù)業(yè)務(wù)需求的不斷增加,以 ieee 80211 協(xié)議為基礎(chǔ)的無(wú)線局域網(wǎng)(wlan)的研究正逐漸為人們研究的熱點(diǎn)。最初開(kāi)發(fā) wlan 主要用于企業(yè)和家庭網(wǎng)絡(luò),通過(guò)有線lan 進(jìn)行無(wú)線擴(kuò)展,通過(guò)無(wú)線通信的方式實(shí)現(xiàn)有線 lan 的功能,并以比有線網(wǎng)絡(luò)更加低廉的價(jià)格和更加便、靈活的方式進(jìn)行網(wǎng)絡(luò)安裝和維護(hù)。但是,隨蜂窩移動(dòng)通信產(chǎn)業(yè)的成功和 wlan 技術(shù)的發(fā)展,出現(xiàn)了與電信網(wǎng)絡(luò)融合提供公共wlan 服務(wù)的趨勢(shì),使人

19、們可以通過(guò) wlan 非常方便地享受高速的無(wú)線數(shù)據(jù)服,這也極大地拓展了 wlan 的應(yīng)用空間。現(xiàn)在 wifi 正在進(jìn)入一個(gè)快速發(fā)展的階段。其中,作為 802.1lb 發(fā)展的后繼標(biāo)準(zhǔn) 802.16(wimax)雖然采用了與 802.11b 不同的頻段(10-66ghz),但作為一項(xiàng)無(wú)線城域網(wǎng)(wman)技術(shù),它可以和 802.11b/g/a 無(wú)線接入熱點(diǎn)互為補(bǔ)充,構(gòu)筑一個(gè)完全覆蓋城域的寬帶無(wú)線技術(shù)。由于移動(dòng)運(yùn)營(yíng)商數(shù)目的增加,語(yǔ)音業(yè)務(wù)帶來(lái)的 arpu 必然呈現(xiàn)下降趨勢(shì),如何提供更多的數(shù)據(jù)多媒體業(yè)務(wù)也是移動(dòng)運(yùn)營(yíng)商一直在思考的問(wèn)題。在這樣的背景下,wlan 在部署上取得了實(shí)質(zhì)性的進(jìn)展:wifi 和 v

20、olp 的結(jié)合給固網(wǎng)運(yùn)營(yíng)商帶來(lái)了契機(jī);wlan 的熱點(diǎn)覆蓋計(jì)劃也正作為3g 的補(bǔ)充成為移動(dòng)運(yùn)營(yíng)商新的利潤(rùn)點(diǎn)。未來(lái) wifi 的發(fā)展方向?qū)ǎ壕W(wǎng)絡(luò)技術(shù)上覆蓋更大的范圍,從熱點(diǎn)到熱區(qū)再到整個(gè)城市;推廣 wifi 手持終端和 vowlan 業(yè)務(wù)成為應(yīng)用模式;基于 ip 的wifi 交換技術(shù)和開(kāi)放的業(yè)務(wù)平臺(tái),使 wlan 網(wǎng)絡(luò)更智能、更易于管理;基于多層次的安全策略(wep、wpa、wpa2、aes、vpn 等)提供不同等級(jí)的安全方案,以確保無(wú)線通信的安全。 第二章 arm系統(tǒng)的硬件平臺(tái)2.1 概述嵌入式硬件平臺(tái)包括中央處理器、外圍的控制電路、只讀存儲(chǔ)器、可讀寫(xiě)存儲(chǔ)器、外圍設(shè)備和網(wǎng)絡(luò)控制單元。由于嵌

21、入式系統(tǒng)芯片的多樣性,各模塊芯片都有較大的選擇空間。在選擇上述硬件平臺(tái)模塊的具體芯片時(shí),通常需要考慮它們的功能、功耗、封裝、體積、成本、可靠性、電磁兼容性等方面,并在盡量滿足應(yīng)用需求的同時(shí)盡量減少冗余功能,以節(jié)約成本。本文根據(jù)實(shí)時(shí)監(jiān)控的需要選擇實(shí)驗(yàn)平臺(tái)各模塊的芯片。2.2 嵌入式處理器的選擇目前嵌入式系統(tǒng)中 32 位微控制器(mcu)的使用率正逐年增長(zhǎng),32 位 arm體系結(jié)構(gòu)己經(jīng)成為一種事實(shí)上的標(biāo)準(zhǔn),隨著高端 32 位嵌入式微處理器價(jià)格的不斷下降和開(kāi)發(fā)環(huán)境的成熟,使得 32 位嵌入式處理器正日益擠壓原先由 8 位微控制器主導(dǎo)的應(yīng)用空間。隨著 arm 處理器在全球范圍的流行,32 位的risc

22、 嵌入式處理器已經(jīng)開(kāi)始成為高中端嵌入式應(yīng)用和設(shè)計(jì)的主流。使用 32 位架構(gòu)不僅能提升性能,還能降低相同成本下的系統(tǒng)功耗和節(jié)約總成本以及縮短產(chǎn)品上市時(shí)間。并使得嵌入式系統(tǒng)可隨著產(chǎn)品的性能和需求不斷擴(kuò)展而升級(jí)。本文選用了一款基于 arm cortex-m3 內(nèi)核芯片由意法半導(dǎo)體(st)推出的stm32f103 芯片。stm32f103 系列微處理器是首款基于 armv7-m 體系結(jié)構(gòu)的 32位標(biāo)準(zhǔn) risc(精簡(jiǎn)指令集)處理器,很高的代碼效率,在 8 位和 16 位系統(tǒng)的存儲(chǔ)空間上發(fā)揮了 arm 內(nèi)核的高性能。該系列微處理器工作頻率為 72mhz,內(nèi)置高達(dá) 128k 字節(jié)的 flash 存儲(chǔ)器和

23、20k 字節(jié)的 sram,具有豐富的通用 i/o 端口。作為最新一代的嵌入式 arm 處理器,它為實(shí)現(xiàn) mcu 的需要提供了低成本的平臺(tái)、縮減的引腳數(shù)目、降低的系統(tǒng)功耗,同時(shí)提供了卓越的計(jì)算性能和先進(jìn)的中斷響應(yīng)系統(tǒng)。豐富的片上資源使得 stm32f103 系列微處理器在多種領(lǐng)域如電機(jī)驅(qū)動(dòng)、實(shí)時(shí)控制、手持設(shè)備、pc 游戲外設(shè)和空調(diào)系統(tǒng)等都顯示出了強(qiáng)大的發(fā)展?jié)摿?。stm32f103 系列微處理器主要資源和特點(diǎn)如下:1.多達(dá) 51 個(gè)快速 i /o 端口, 所有 i/o 口均可以映像到 16 個(gè)外部中斷, 幾乎所有端口都允許 5v 信號(hào)輸入。每個(gè)端口都可以由軟件配置成輸出(推挽或開(kāi)漏)、輸入(帶或不

24、帶上拉或下拉)或其它的外設(shè)功能口。2.2 個(gè) 12 位模數(shù)轉(zhuǎn)換器,多達(dá) 16 個(gè)外部輸入通道,轉(zhuǎn)換速率可達(dá) 1mhz,轉(zhuǎn)換范圍為 0-36v,具有雙采樣和保持功能。內(nèi)部嵌入有溫度傳感器,可方便的測(cè)量處理器溫度值。3.靈活的 7 路通用 dma 可以管理存儲(chǔ)器到存儲(chǔ)器、設(shè)備到存儲(chǔ)器和存儲(chǔ)器到設(shè)備的數(shù)據(jù)傳輸,無(wú)須 cpu 任何干預(yù)。通過(guò) dma 可以使數(shù)據(jù)快速地移動(dòng) cpu 的資源來(lái)進(jìn)行其他操作。dma 控制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_(dá)緩沖區(qū)結(jié)尾時(shí)所產(chǎn)生的中斷。它支持的外設(shè)包括:定時(shí)器、adc、spi、i2c 和 usart 等。4.調(diào)試模式:支持標(biāo)準(zhǔn)的 20 腳 jtag 仿真調(diào)

25、試以及針對(duì) cortex- m3 內(nèi)核的串行單線調(diào)試(swd)功能。通常默認(rèn)的調(diào)試接口是 jtag 接口。5.內(nèi)部包含多達(dá) 7 個(gè)定時(shí)器。6.含有豐富的通信接口,三個(gè) usart 異步串行通信接口、兩個(gè) i2c 接口、兩個(gè) spi 接口、一個(gè) can 接口和一個(gè) usb 接口,為實(shí)現(xiàn)數(shù)據(jù)通信提供了保證。除工業(yè)可編程邏輯控制器(plc)、家電、工業(yè)及家用安全設(shè)備、消防和暖氣通風(fēng)空調(diào)系統(tǒng)等傳統(tǒng)應(yīng)用,智能卡和生物測(cè)定等消費(fèi)電子應(yīng)用外,新的 stm32系列還特別適合側(cè)重低功耗的設(shè)備,如血糖和血脂監(jiān)測(cè)設(shè)備。2.3 stm32f103的usart接口2.3.1 usart 接口的引腳描述表 2.1 usa

26、rt 的引腳描述引腳名稱類型描述rx輸入端口串口數(shù)據(jù)流入tx輸出端口串口數(shù)據(jù)流出2.3.2 usart 主要的特性1.3 全雙工的,異步通信。2. nrz 標(biāo)準(zhǔn)格式。3. 分?jǐn)?shù)波特發(fā)生器系統(tǒng)。4. 可編程數(shù)據(jù)字長(zhǎng)(8 位或 9 位)。5. 可配置的停止位-支持 1 或 2 個(gè)停止位。6. lin 主發(fā)送同步斷開(kāi)符的能以及 lin 從檢測(cè)斷開(kāi)符的能。7. 單獨(dú)的發(fā)送器和接收器使能位。8. 檢測(cè)標(biāo)志。9. 校驗(yàn)控制。10. 四個(gè)錯(cuò)誤檢測(cè)標(biāo)志。11. 10 個(gè)帶標(biāo)志的中斷源。12. 多處器通信-如果地址匹配,則進(jìn)入靜默模式。13. 從休眠模式中喚醒。2.3.3 數(shù)據(jù)發(fā)送與接收過(guò)程 在接收時(shí),接收到的

27、數(shù)據(jù)被存放在一個(gè)內(nèi)部的接收緩沖器中;在發(fā)送時(shí),在被發(fā)送之前,數(shù)據(jù)將首先被存放在一個(gè)內(nèi)部的發(fā)送緩沖器中。對(duì) spi_dr 寄存器的讀操作,將返回接收緩沖器的內(nèi)容寫(xiě)入 spi_dr 寄存器。處理數(shù)據(jù)的發(fā)送與接收,當(dāng)數(shù)據(jù)從發(fā)送緩沖器傳送到移位寄存器時(shí),設(shè)置 txe標(biāo)志(發(fā)送緩沖器空),它表示內(nèi)部的發(fā)送緩沖器可以接收下一個(gè)數(shù)據(jù);如果在spi_cr2 寄存器中設(shè)置了 txeie 位,則此時(shí)會(huì)產(chǎn)生一個(gè)中斷;寫(xiě)入 spi_dr 寄存器即可清除 txe 位。注:在寫(xiě)入發(fā)送緩沖器之前,軟件必須確認(rèn) txe 標(biāo)志為1,否則新的數(shù)據(jù)會(huì)覆蓋已經(jīng)在發(fā)送緩沖器中的數(shù)據(jù)。第三章 wifi技術(shù)及模塊概述3.1 wifi技術(shù)概

28、述80211 協(xié)議是 ieee 802-r 作組定義的第一個(gè)被國(guó)際認(rèn)可的無(wú)線局域網(wǎng)協(xié)議。跟傳統(tǒng)的有線局域網(wǎng)相比,基于 wifi 協(xié)議的無(wú)線局域網(wǎng)具有可移動(dòng)性,動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)和易搭建的特點(diǎn)因此用戶可以根據(jù)需求和環(huán)境選擇合適的局域網(wǎng)技術(shù)來(lái)構(gòu)造自己的網(wǎng)絡(luò)。3.1.1 wifi 網(wǎng)絡(luò)基本結(jié)構(gòu)80211協(xié)議的規(guī)定了wifi的基本網(wǎng)絡(luò)結(jié)構(gòu)包括物理層、介質(zhì)訪入控制層(1iac層)及邏輯鏈路控制層(lljc層)。其三層結(jié)構(gòu)可如圖21所示。 802.2llc(logical link control) 802.11 mac802.11phyfhss802.11phydsss802.11 phyir/dsss802

29、.11 phyofdm802.11 phydsss/ofdm802.11b11mbit/s2.4ghz802.1a54mbit/s5ghz802.11g54mbit/s5ghz3.1.2 wifi 網(wǎng)絡(luò)的操作模式ieee 802.11 標(biāo)準(zhǔn)定義了兩種基本操作模式:infrastructure 模式和 adhoe自組網(wǎng)絡(luò)模式。(1)infrastructure 模式infra,也稱為基礎(chǔ)網(wǎng),是由 ap 創(chuàng)建,眾多 sta 加入所組成的無(wú)線網(wǎng)絡(luò),這種類型的網(wǎng)絡(luò)的特點(diǎn)是 ap 是整個(gè)網(wǎng)絡(luò)的中心,網(wǎng)絡(luò)中所有的通信都通過(guò) ap 來(lái)轉(zhuǎn)發(fā)完成。圖 3-1 infrastructure模式的結(jié)構(gòu)(2)ad h

30、oc 自組網(wǎng)絡(luò)模式adhoc,也稱為自組網(wǎng),是僅由兩個(gè)及以上 sta 自己組成,網(wǎng)絡(luò)中不存在ap,這種類型網(wǎng)絡(luò)是一種松散的結(jié)構(gòu),網(wǎng)絡(luò)中所有的 sta 都可以直接通信。圖 3.4 ad hoc 模式3.2 wifi模塊介紹wi-fi 技術(shù)的公開(kāi),廠商進(jìn)入該領(lǐng)域門(mén)檻較低,目前市場(chǎng)上有很多品牌的wifi 開(kāi)發(fā)模塊。為了實(shí)現(xiàn)方便,我選擇了一個(gè)開(kāi)發(fā)文檔豐富的 wifi 模塊。該模塊由成都比特電子科技設(shè)計(jì)有限公司生產(chǎn),型號(hào)為 wifi-m03。該模塊是一款專為帶有 uart 接口平臺(tái)設(shè)計(jì)的網(wǎng)卡模塊,符合 802.11b 標(biāo)準(zhǔn),可采用插針借口的方式與主機(jī)相連。wifi-m03 網(wǎng)卡模塊應(yīng)用于帶有 uart

31、接口的設(shè)備環(huán)境中,符合 stm32 接口的要求。目前該產(chǎn)品已經(jīng)廣泛地應(yīng)用于無(wú)線 pos 機(jī)、公交卡等系統(tǒng)中。wifi-m03 接口特性如下:a. 雙排(2 x 4)插針式接口b. 支持波特率范圍:1200115200bpsc. 支持硬件 rts/cts 流控d. 單 3.3v 供電3.2.1 模塊硬件結(jié)構(gòu) 圖 3-2 wifi 與串口硬件連接圖模塊提供雙列直插 8 針引腳,其中外側(cè)一排(58)引腳為必須連接,如上 圖所示,而且這些引腳完全兼容單排 4 針接口。內(nèi)側(cè)一排(14)為可選功能引腳,連接如上圖所示。其各端口功能如下:3.2.2 模塊工作模式wifi-m03 模塊內(nèi)置無(wú)線網(wǎng)絡(luò)協(xié)議、iee

32、e802.11 協(xié)議棧以及 tcp/ip 協(xié)議棧,具有兩種工作模式,分別是正常啟動(dòng)模式和配置啟動(dòng)模式。a. 正常啟動(dòng)模式在正常啟動(dòng)模式下,模塊的串口始終工作在透明數(shù)據(jù)傳輸狀態(tài),因此用戶只需把它看做一條虛擬的串口線,按照使用普通串口的方式發(fā)送和接收數(shù)據(jù)就可以了。所有通過(guò)串口接收到的數(shù)據(jù)都轉(zhuǎn)發(fā)到網(wǎng)絡(luò)上,同樣,從網(wǎng)絡(luò)上接收到的數(shù)據(jù),模塊也都原樣從發(fā)送到串口上。模塊的 ncts/mode/gpio 引腳進(jìn)行了內(nèi)部下拉,當(dāng)用戶將其懸空,模塊即可自動(dòng)進(jìn)入正常啟動(dòng)模式。在正常啟動(dòng)模式下,系統(tǒng)根據(jù)配置參數(shù)中預(yù)設(shè)的工作模式(自動(dòng)/命令模式)運(yùn)行。該引腳(引腳 2)在模塊上電復(fù)位階段用來(lái)進(jìn)行啟動(dòng)模式選擇,時(shí)序如下

33、圖所示。圖 3-3 正常啟動(dòng)模式b. 配置模式 在啟動(dòng)配置模式下,系統(tǒng)忽略配置參數(shù)中預(yù)設(shè)的工作模式參數(shù),強(qiáng)制進(jìn)入 at+命令模式,此模式通常用于使用配置管理程序進(jìn)行參數(shù)修改及功能測(cè)試。此工作模式下,模塊根據(jù)用戶通過(guò)串口下發(fā)的指令進(jìn)行工作,用戶可以通過(guò)指令對(duì)模塊進(jìn)行完全的控制,包括修改配置參數(shù)、控制聯(lián)網(wǎng)、控制 tcp/ip 連接、數(shù)據(jù)傳輸?shù)?。這是一高級(jí)的使用方式,也是對(duì)用戶來(lái)說(shuō)最為靈活的使用方式。用戶可以通過(guò)指令任意控制無(wú)線網(wǎng)絡(luò)的連接、斷開(kāi),也可以同時(shí)創(chuàng)建多個(gè)不同類型的 tcp/ip 連接,并保持通信。ncts/mode/gpio 引腳(引腳 2)在模塊上電復(fù)位階段用來(lái)進(jìn)行啟動(dòng)模式選擇,時(shí)序如下

34、圖所示。圖 3-4 配置模式第四章 硬件模塊設(shè)計(jì)4.1 系統(tǒng)硬件結(jié)構(gòu)系統(tǒng)模塊包括兩個(gè)個(gè)部分分別為 stm32 開(kāi)發(fā)平臺(tái)和 wifi 模塊。相互之間的。聯(lián)系及架構(gòu)如下圖所:stm32串口wifi 模塊lcd 顯示無(wú)線 ap天線天線sst25vf080 圖 4-1 系統(tǒng)模塊框圖4.1.1 wifi 模塊工作流程模塊的工作流程包括注冊(cè)和數(shù)據(jù)的發(fā)送請(qǐng)求等,發(fā)送數(shù)據(jù)和接受數(shù)據(jù)的工作流程如圖所示: 從圖中,對(duì)于發(fā)送數(shù)據(jù)的流程,模塊開(kāi)啟后,首先通過(guò) wifi 模塊尋找、連接網(wǎng)絡(luò),當(dāng)連接到網(wǎng)絡(luò)時(shí),主動(dòng)向服務(wù)器發(fā)送注冊(cè)請(qǐng)求,注冊(cè)完后便可以根據(jù)上層的需要進(jìn)行呼叫親求了,建立呼叫鏈接后,移動(dòng)開(kāi)發(fā)平臺(tái)就會(huì)開(kāi)始等待上層

35、的數(shù)據(jù),直到接收到數(shù)據(jù),由 stm32 將數(shù)據(jù)封裝后由 wifi 模塊發(fā)送給服務(wù)器。重復(fù)等待動(dòng)作直到通信結(jié)束為止。對(duì)于接收過(guò)程,與發(fā)送送過(guò)程相似,只是對(duì)于數(shù)據(jù)的處理,與發(fā)送過(guò)程正好相反。 圖 4-1 數(shù)據(jù)發(fā)流程 圖 4-2 數(shù)據(jù)接收流程4.2 模塊電路4.2.1 電源設(shè)計(jì)電源引腳連接圖如下:c8103c9103c10103c11105gnd3v3batterycr1220 holderc71ufc12104nc73vdd_150vdd_275vdd_3100vdd_428vdd_511vdda22vss_149vss_274vss_399vss_427vss_510vssa19vbat6u1b

36、stm 32f103vct6圖 4-3 電源引腳連接圖vdd1/2/3/4/5,vdda 供電電源范圍在 2.0-3.6v,vbat (備份操作電壓)在1.8v-3.6v 之間。采用穩(wěn)壓芯片 ams1117,該器件固定輸出版本電壓輸出值有1.8v,2.85v,3.3v,5.0v 本設(shè)計(jì)選用 3.3v。vdd 引腳必須連接外部未定電容器(五個(gè) 100nf 的陶瓷電容器和一個(gè)鉭制電容器 min4.7uf,typ.10uf)。備份寄存器的電源采用 cr1220 電池單獨(dú)供電,防止板子掉電時(shí),備份寄存器中的數(shù)據(jù)丟失。4.2.2 復(fù)位電路設(shè)計(jì)引腳連接如右圖:r1110k 5%c17105resetnrs

37、tvccgnd圖 4-4 復(fù)位引腳圖復(fù)位電路的功能是完成系統(tǒng)的上電復(fù)位和系統(tǒng)運(yùn)行時(shí)的按鍵復(fù)位功能。復(fù)位電路采用簡(jiǎn)單的、常見(jiàn)的 rc 復(fù)位電路即可實(shí)現(xiàn)復(fù)位功能。當(dāng)復(fù)位按鍵為按下時(shí),電容將電路斷開(kāi),此時(shí) nrst 線接的是高電平。不能復(fù)位。當(dāng)按鍵按下以后,電容放電,電容兩端的電壓逐漸降低為零,實(shí)現(xiàn)復(fù)位功能。4.2.3 晶振電路設(shè)計(jì)需要提供的外部時(shí)鐘源有 hse 和 lse。hse 采用 8mhz 的外部晶振,有點(diǎn)在于能產(chǎn)生非常精確的主時(shí)鐘。lse 是 32.768khz 的低速外部晶體或陶瓷共鳴器。能為實(shí)時(shí)時(shí)鐘提供低速,精確的時(shí)鐘源。4.2.4 調(diào)試接口j100 1 3 5 7 924681011

38、121314151617181920vcc33pb4_trstpa15_tdipa14_tckpa13_tmspb3_tdo+5vgndnrst圖 4-5trst:測(cè)試復(fù)位輸入信號(hào),低電平有效。tdi:jtag 指令和數(shù)據(jù)寄存器器的串行數(shù)據(jù)輸入tms:tap 控制氣的模式輸入信號(hào)tdo:jtag 指令和數(shù)據(jù)寄存器器的串行數(shù)據(jù)輸出tck:jtak 調(diào)試時(shí)鐘4.3 lcd模塊4.3.1 原理圖12345678910111213141516171819202122232425262728293031323334353637383940j102lcdpd9_db16pd10_db17pd7_lcd_c

39、spd11_lcd_rspd5_lcd_wrpd6_busypd12_nand_alepe0_tc_spe1pe2pe3pd4_lcd_rdpd13_lcd_int0pe10_db07pe12_db11pe14_db13pd8_db15pe8_db05vcc33gndpd3_lcd_blpd14 _db00pd15_db01 pd0_db02pe7_ db04pe9_db06pe11_db08pe13_db10pe15_db14pd15 db03pd2_lcd_rsttft+口口口口口pb14_spi2_m isopb15_spi2_m osipb13_spi2_sck圖 4-6圖 4-6 中

40、液晶顯示模塊引腳功能描述:db00-db17 數(shù)據(jù)線 cs 片選信號(hào)線rs:命令/數(shù)據(jù)標(biāo)志 rst 硬復(fù)位 tftlcdrd:從 tftlcd 讀數(shù)據(jù) wr:向 tftlcd 寫(xiě)入數(shù)據(jù)4.4 存儲(chǔ)模塊4.4.1 原理圖flash 芯片采用的是 sst25vf080,其引腳連接如圖u301pb8_spi2_cspb13_spi2_sckpb14_spi2_misopb15_spi2_mosivcc33_memgndvcc33_mem/cesowpgndsisck/holdvcc圖 4-7ce:芯片使能端si:串行數(shù)據(jù)輸入so:串行數(shù)據(jù)輸出 wp:寫(xiě)保護(hù)hold:保持 vdd:電源 2.7-3.6

41、vvss:接地端4.4.2 功能描述存儲(chǔ)從串口讀取的數(shù)據(jù),用作 tftlcd 的緩沖區(qū)。flash 容量 1mbyte,因字庫(kù)裝載在 flash 中占用前 756kbyte??梢宰x寫(xiě)的區(qū)域只有 244kbyte。可以將 0x40000h-0xfffffh 作為報(bào)文存儲(chǔ)空間。第五章 軟件設(shè)計(jì)5.1 系統(tǒng)軟件設(shè)計(jì)框圖 應(yīng)用程序:wifi 熱點(diǎn)接入管理界面wifi 模塊tcp/ip協(xié)議uc/os實(shí)時(shí)操作系統(tǒng)uc/gui 用戶圖形界面串口驅(qū)動(dòng)lcd 液晶驅(qū)動(dòng)網(wǎng)絡(luò)數(shù)據(jù)傳輸設(shè)計(jì)圖 5-1 系統(tǒng)軟件設(shè)計(jì)框圖5.2 驅(qū)動(dòng)設(shè)計(jì)5.2.1 串口驅(qū)動(dòng)設(shè)計(jì)wifi 與 stm32 之間用 usart1 相連,因而初始

42、化 stm32 時(shí),需要開(kāi)放usart1,可在函數(shù) uart_configuration(void);設(shè)置波特率,中斷類型等,在本項(xiàng)目中設(shè)置波特率為 115200bps,接收和發(fā)送都產(chǎn)生中斷以保證其既能發(fā)送數(shù)據(jù)又能接受數(shù)據(jù)。wifi 開(kāi)發(fā)模塊為開(kāi)發(fā)者提供了一個(gè)數(shù)據(jù)結(jié)構(gòu)netparabuffer 來(lái)統(tǒng)一每個(gè)參數(shù)的格式,其具體結(jié)構(gòu)如下:typedef struct netparabuffer unsigned char m_id; /參數(shù)名稱 unsigned char clength; /參數(shù)長(zhǎng)度tcp/ip協(xié)議串口驅(qū)動(dòng)lcd 液晶驅(qū)動(dòng)unsigned char cinfo64; /具體的參數(shù)內(nèi)

43、容在配置到 wifi 的相關(guān)參數(shù)后,調(diào)用 wifi_para_set_auto()使 wifi 處在自動(dòng)模式并聯(lián)網(wǎng),這就可以通過(guò) ap 連上網(wǎng)了。之后的數(shù)據(jù)直接調(diào)用senddatatowifi 就可以通過(guò) usart1 將數(shù)據(jù)發(fā)送到 wifi 模塊,根據(jù)之前設(shè)置的服務(wù)器 ip 地址通過(guò) ap 發(fā)送出去。具體程序流程圖如下:開(kāi)始串口初始化完成uart_configuration()設(shè)置串口波特率、中斷類型,初始化串口 void wifisetnetpara() senddatatowifi()發(fā)送命令給 wifi 模塊,設(shè)置 wifi 圖 5-2 串口初始化流程圖5.2.2 tft-lcd 底層

44、驅(qū)動(dòng)設(shè)計(jì)5.2.2.1 與讀取/寫(xiě)入相關(guān)的寄存器由 ili9325 數(shù)據(jù)手冊(cè)可知,索引寄存器(index register)存儲(chǔ)指令或顯示數(shù)據(jù)即將被寫(xiě)入的寄存器的地址,寄存器選擇信號(hào)(rs)、讀/寫(xiě)信號(hào)和數(shù)據(jù)總線用來(lái)讀/寫(xiě) ili9325 內(nèi)部的指令或數(shù)據(jù)。因此,要訪問(wèn) 9325 內(nèi)部的寄存器或顯示 ram,首先要通過(guò) ir 索引寄存器設(shè)置目標(biāo)寄存器的地址。除了 ir 寄存器,與讀寫(xiě)訪問(wèn)有關(guān)的寄存器如圖 5-2 所示:圖 5-3 與讀寫(xiě)有關(guān)的寄存器表 5-1 說(shuō)明了每個(gè)寄存器的具體用途:表 5-1 與讀寫(xiě)有關(guān)的寄存器說(shuō)明r20h,r21h(gram 水平/垂直地址設(shè)置寄存器)此寄存器用來(lái)設(shè)置地

45、址計(jì)數(shù)器(ac)的初始值。隨著數(shù)據(jù)被寫(xiě)入內(nèi)部 gram,地址計(jì)數(shù)器按照之前所述的 am、i/d 位的設(shè)置自動(dòng)更新。當(dāng)從內(nèi)部 gram 讀取數(shù)據(jù)時(shí),ac 不自動(dòng)更新。r22h(gram 寫(xiě)數(shù)據(jù)寄存器)這個(gè)寄存器是 gram 訪問(wèn)接口。當(dāng)通過(guò)這個(gè)寄存器更新顯示數(shù)據(jù)時(shí),地址計(jì)數(shù)器(ac)自動(dòng)增加或減少。r22h(gram 讀數(shù)據(jù)寄存器)此寄存器用來(lái)從 gram 中讀出顯示數(shù)據(jù)。5.2.2.2 讀取/寫(xiě)入數(shù)據(jù)的過(guò)程ili9325 內(nèi)部具有一個(gè) 16 位的索引寄存器(ir),一個(gè) 18 位的寫(xiě)數(shù)據(jù)寄存器(wdr)和一個(gè) 18 位讀數(shù)據(jù)寄存器(rdr)。wdr 寄存器用來(lái)臨時(shí)存儲(chǔ)即將被寫(xiě)入控制寄存器或者內(nèi)

46、部 gram 的數(shù)據(jù),rdr 寄存器用來(lái)臨時(shí)存儲(chǔ)從 gram 讀出的數(shù)據(jù)。來(lái)自 mpu 的將被寫(xiě)入內(nèi)部 gram 的數(shù)據(jù)首先被寫(xiě)入 wdr,然后再被自動(dòng)寫(xiě)入 gram。mpu 通過(guò) rdr 寄存器讀取內(nèi)部 gram 的數(shù)據(jù)。因此,在讀取 9325內(nèi)部 gram 的數(shù)據(jù)時(shí),第一次讀出的是無(wú)效數(shù)據(jù),從第二次開(kāi)始讀取有效數(shù)據(jù)。當(dāng)讀取 gram 的地址改變時(shí),第一次讀取的仍為無(wú)效數(shù)據(jù)。讀取數(shù)據(jù)的流程如圖 4-3 所示:圖 5-4 ili9325 讀內(nèi)部顯示數(shù)據(jù)流程圖首先,根據(jù)在初始化時(shí)設(shè)置的 gram 地址刷新方式(由 i/d、am 位的組合值確定)以及窗口地址區(qū)域的起止坐標(biāo)(由 hsa、hea 和

47、vsa、vea 聯(lián)合確定)設(shè)置填入地址計(jì)數(shù)器 ac 的初始地址值 m。由于第一次讀出的顯示數(shù)據(jù)是 rdr 讀數(shù)據(jù)鎖存器中的無(wú)效數(shù)據(jù),因此需要進(jìn)行第二次數(shù)據(jù)讀取,以得到真正有效的顯示數(shù)據(jù)。由于在讀取 gram 顯示數(shù)據(jù)時(shí)地址計(jì)數(shù)器 ac 的值不會(huì)自動(dòng)更新,因此在希望讀取另一地址處的顯示數(shù)據(jù)時(shí)需要重新設(shè)置 ac 的初值并重復(fù)以上過(guò)程。5.2.3 具體程序?qū)崿F(xiàn)由前面的時(shí)序圖得之,讀寫(xiě) ili9325 內(nèi)部的寄存器或顯示 ram 的過(guò)程是先在索引寄存器寫(xiě)入地址,然后寫(xiě)入命令數(shù)據(jù)或顏色值,讀寫(xiě)內(nèi)部寄存器或 gram的具體流程如圖 5-5 所示: 圖 5-55.3 網(wǎng)絡(luò)數(shù)據(jù)傳輸報(bào)文設(shè)計(jì)所選 wifi 模塊

48、在自動(dòng)模式下始終工作在透明數(shù)據(jù)傳輸狀態(tài),因此用戶只需把它看做一條虛擬的串口線。為了能夠保證數(shù)據(jù)能夠在網(wǎng)絡(luò)上順利傳輸以及平臺(tái)的兼容性,需將發(fā)送至串口的報(bào)文制定統(tǒng)一的數(shù)據(jù)結(jié)。一個(gè)好的數(shù)據(jù)結(jié)構(gòu)是模塊穩(wěn)定的保證,是系統(tǒng)提供模塊類型的體現(xiàn),除了可以保證模塊的可擴(kuò)性,還可以為系統(tǒng)的擴(kuò)展提供保障。本項(xiàng)目中,wifi 模塊所在的系統(tǒng)架構(gòu)為 c/s 架構(gòu),這就要求數(shù)據(jù)報(bào)文除了需要模塊能夠正確的處理,同時(shí)要求服務(wù)器能夠解析。對(duì)于服務(wù)器端,主要由項(xiàng)目中其他人解決,這里根據(jù)數(shù)據(jù)數(shù)據(jù)格式的用途及服務(wù)器和客戶端的特點(diǎn),可以將數(shù)據(jù)包分為兩類,一類與信令相關(guān)的結(jié)構(gòu),一類與數(shù)據(jù)相關(guān)的結(jié)構(gòu)。對(duì)于與信令相關(guān)的數(shù)據(jù)包主要包括注冊(cè)請(qǐng)求

49、報(bào)文,注冊(cè)應(yīng)答報(bào)文,呼叫請(qǐng)求報(bào)文,呼叫通報(bào)報(bào)文,被叫端呼叫應(yīng)答報(bào)文,服務(wù)器呼叫應(yīng)答報(bào)文,報(bào)文格式如圖 5-6 至圖 5-11。圖5-6 注冊(cè)請(qǐng)求報(bào)文圖 5-7 注冊(cè)應(yīng)答報(bào)文圖 5-8 呼叫請(qǐng)求報(bào)文圖 5-9 呼叫通報(bào)報(bào)文圖 5-10 被叫端呼叫應(yīng)答報(bào)文圖 5-11 服務(wù)器呼叫應(yīng)答報(bào)文對(duì)上圖中各數(shù)據(jù)報(bào)文中字段含義如下:總長(zhǎng)度:8bit,表示報(bào)文的總長(zhǎng)度。類型:8bit,表示報(bào)文的類型,在這個(gè)字節(jié)的不同值代表不同的數(shù)據(jù)報(bào)文類型,其中 0 x10:注冊(cè)報(bào)文請(qǐng)求,0 x12:注冊(cè)報(bào)文失敗,0 x20:呼叫請(qǐng)求,0 x22 被叫通報(bào),0 x21:呼叫成功,0 x23 呼叫失敗。標(biāo)長(zhǎng):8bit,標(biāo)號(hào)的長(zhǎng)度

50、,標(biāo)號(hào)類似于該用戶的用戶名。能力:8bit,能力主要用于該用戶使用資源的權(quán)利,服務(wù)器可以根據(jù)用戶的能力判斷用戶是否對(duì)資源有實(shí)用的權(quán)限。本項(xiàng)目中默認(rèn)用戶都有發(fā)送報(bào)文和接受報(bào)文的能力,并用 0 x00 表示。random:16bit,random 是客戶端產(chǎn)生的一個(gè) 16 位的隨機(jī)數(shù),服務(wù)器返回的應(yīng)答報(bào)文應(yīng)是 random+1。random 在一些協(xié)議中,主要作用是保證信息的新鮮性,防止重放攻擊。crc:8bit,crc 的全拼是 cyclic redundancy check,又稱之為循環(huán)冗余校驗(yàn)。在本項(xiàng)目中,使用一個(gè)簡(jiǎn)單的 crc,將數(shù)據(jù)包前面的所有數(shù)據(jù)以八位為一個(gè)分組進(jìn)行異或,將最后的結(jié)果存

51、入最后的八位中。源標(biāo)長(zhǎng):8bit,主叫端用戶名的用戶名。目的標(biāo)長(zhǎng):8bit,接受方標(biāo)號(hào)的長(zhǎng)度。目的標(biāo)號(hào):8bit,目的端用戶名的用戶名。上述五種數(shù)據(jù)報(bào)文中,注冊(cè)請(qǐng)求和應(yīng)答請(qǐng)求主要在用戶登錄系統(tǒng)時(shí)注冊(cè)使用,呼叫請(qǐng)求,呼叫通報(bào),客戶端呼叫應(yīng)答和服務(wù)器呼叫應(yīng)答主要在呼叫請(qǐng)求的過(guò)程中。具體過(guò)程為主叫方將呼叫請(qǐng)求發(fā)送至服務(wù)器,服務(wù)器收到請(qǐng)求后解析數(shù)據(jù)包產(chǎn)生呼叫通告報(bào)文發(fā)給被叫方,等待被叫方的呼叫應(yīng)答報(bào)文,然后將結(jié)果傳遞給主叫方,同時(shí),如果被叫方長(zhǎng)時(shí)間沒(méi)有反應(yīng),則服務(wù)器會(huì)產(chǎn)生呼叫失敗報(bào)文給主叫方。對(duì)于數(shù)據(jù)類型的報(bào)文,其主要目的是承載通信雙方的數(shù)據(jù)以及相對(duì)于數(shù)據(jù)的應(yīng)答。主要包括數(shù)據(jù)報(bào)文、應(yīng)答報(bào)文和數(shù)據(jù)結(jié)束報(bào)

52、文。報(bào)文格式如圖所示: 圖 5-11 數(shù)據(jù)報(bào)文圖 5-13 應(yīng)答報(bào)文圖 5-12 括數(shù)據(jù)報(bào)文圖 5-14 結(jié)束報(bào)文從圖中可以看出數(shù)據(jù)類報(bào)文結(jié)構(gòu)和信令類相比,有了包號(hào),數(shù)據(jù)長(zhǎng)度和數(shù)據(jù)字段,其中數(shù)據(jù)長(zhǎng)度和數(shù)據(jù)主要表示傳輸?shù)臄?shù)據(jù),而對(duì)于包號(hào),主要作用是中斷可以根據(jù)包號(hào)重組收到的數(shù)據(jù)包,保持?jǐn)?shù)據(jù)包的完整性。5.4 uc/gui的移植5.4.1 uc/gui 的目錄結(jié)構(gòu)uc/gui 推薦的目錄結(jié)構(gòu)如圖 4-7 所示,在工程文件夾中保持 uc/gui 程序文件(包括頭文件)的獨(dú)立性和完整性可以使 uc/gui 的升級(jí)更加簡(jiǎn)單(僅需簡(jiǎn)單的替換 gui 子文件夾)。圖 5-15 uc/gui 目錄結(jié)構(gòu)各個(gè)子文

53、件夾的內(nèi)容說(shuō)明如下表所示:表 5-2 uc/gui 文件結(jié)構(gòu)及說(shuō)明目錄內(nèi)容config配置文件guiantialias抗鋸齒支持*guiconvertmono用于灰度級(jí)顯示的顏色轉(zhuǎn)換程序*guiconvertcolor用于彩色顯示的顏色轉(zhuǎn)換程序*guicoreuc/gui 核心文件guifont字體文件guilcddriverlcd 驅(qū)動(dòng)程序guimemdev存儲(chǔ)設(shè)備支持*guiwidget控件庫(kù)*guiwm窗口管理器*注釋:標(biāo)注“*”的為可選模塊5.4.2 在目標(biāo)系統(tǒng)上應(yīng)用 uc/gui 的配置過(guò)程uc/gui 的移植過(guò)程如圖 5-15 所示:圖 5-16 uc/gui 移植過(guò)程 1.底層驅(qū)

54、動(dòng)程序,使其可以正常顯示。2.在工程項(xiàng)目中加入 uc/gui 程序包。3.修改有關(guān)的配置頭文件(在將 uc/gui 程序包加入到工程項(xiàng)目文件中后,首先要做的就是要對(duì) uc/gui 進(jìn)行相關(guān)的配置,以使其與自己所采用的具體硬件環(huán)境相適應(yīng)。具體步驟如下:編寫(xiě) tft-lclcdconf.h 、guiconf.h 、guitouchconf.h5.4.3 lcdconf.h 的配置(低層配置) lcdconf.h 中包含與具體型號(hào)的液晶顯示器硬件相關(guān)的宏定義,主要有兩大類:1.lcd 宏:定義顯示分辨率以及其他可選特性(例如鏡像等);2.lcd 控制器宏:定義如何訪問(wèn)你所使用的 lcd 控制器。本文

55、程序中 lcdconf.h 文件的內(nèi)容如下:#ifndef lcdconf_h#define lcdconf_h#define lcd_xsize (320) /定義水平分辨率#define lcd_ysize (240) /定義垂直分辨率#define lcd_controller (9325) /定義 lcd 控制器的型號(hào)#define lcd_bitsperpixel (16) /定義每個(gè)像素的顏色位數(shù)#define lcd_fixedpalette (565) /定義調(diào)色板格式,此處采用 565 /顏色格式#define lcd_swap_rb (1) /交換紅藍(lán)基色#define l

56、cd_init_controller() ili9325_initializtion(); /lcd 控制器 /初始化函數(shù)#endif5.4.4 guiconf.h 的配置(高層配置)guiconf.h 頭文件中的內(nèi)容主要用來(lái)配置 gui 庫(kù)的一些可選功能,例如是否使用窗口管理器(wm)、控件庫(kù)(widget library)功能以及是否啟用多任務(wù)環(huán)境支持等選項(xiàng)。本文程序中 guiconf.h 文件的具體內(nèi)容如下所示:#ifndef guiconf_h#define guiconf_h#define gui_os (1) /啟用多任務(wù)環(huán)境支持#define gui_support_touch

57、(0) /不啟用觸摸屏#define gui_support_unicode (1) /支持 ascii/unicode字符串#define gui_default_font &gui_font6x8 /設(shè)置默認(rèn)字體#define gui_alloc_size 5000 /為 wm 和存儲(chǔ)設(shè)備分配的動(dòng)態(tài) /內(nèi)存空間/*可選包配置*/#define gui_winsupport 1 /啟用窗口管理器#define gui_support_memdev 1 /啟用存儲(chǔ)設(shè)備支持#define gui_support_aa 1 /啟用抗鋸齒#endif當(dāng)量機(jī)制對(duì)其進(jìn)行保護(hù),以使任務(wù)可以有序的使

58、用這些資源。在有多個(gè)線程調(diào)用 uc/gui 函數(shù)進(jìn)行繪圖顯示時(shí),需要采用信號(hào)量機(jī)制對(duì)顯示器或 uc/gui 運(yùn)行于多任務(wù)環(huán)境時(shí)(即 gui_os=1),必須在 guitask.c 文件中定義 gui 與 rtos 內(nèi)核的接口函數(shù),下面以本文程序中采用的 uc/os-為例進(jìn)行說(shuō)明。正如在介紹 uc/os-任務(wù)同步與通信機(jī)制時(shí)所述,對(duì)于顯示器、打印機(jī)等獨(dú)占性資源,需要采用信號(hào)者臨界的內(nèi)部數(shù)據(jù)結(jié)構(gòu)進(jìn)行保護(hù)。主要的內(nèi)核接口例程如表 5-3 所示:表 5-3 uc/gui 內(nèi)核接口函數(shù)說(shuō)明函數(shù)說(shuō)明gui_x_initos( )初始化內(nèi)核借口模型(創(chuàng)建信號(hào)量)gui_x_gettaskid( )返回一個(gè)唯

59、一的 32 位當(dāng)前運(yùn)行任務(wù)的標(biāo)識(shí)符gui_x_lock( )請(qǐng)求信號(hào)量gui_x_unlock( )釋放信號(hào)量在本文程序中,相關(guān)函數(shù)的具體實(shí)現(xiàn)如下所示:#include includes.hstatic os_event * dispsem;u32 gui_x_gettaskid(void) return (u32)(ostcbcur-ostcbprio); void gui_x_initos(void) dispsem = ossemcreate(1); void gui_x_unlock(void) ossempost(dispsem); void gui_x_lock(void) int

60、8u err; ossempend(dispsem, 0, &err);5.4.5 ili9235 的初始化ili9325 的初始化需要配置眾多的寄存器,用于配置電源模塊、工作模式、伽馬校正等等,具體每個(gè)參數(shù)的含義可以查閱 ili9325 數(shù)據(jù)手冊(cè),其中最重要的用于配置工作模式的寄存器之前已經(jīng)介紹過(guò)。一般在購(gòu)買液晶屏?xí)r會(huì)附贈(zèng)屏幕所用液晶控制器的初始化程序,我們可以在稍加修改使其滿足自己的特定需要后直接調(diào)用這些初始化程序。本文所用程序中 ili9325 液晶控制器的初始化函數(shù)原型如下:void lcd_9325_init(void); ili9325 液晶控制器在開(kāi)始配置之前首先要進(jìn)行復(fù)位。由之前的 l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論