版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于嵌入式系統(tǒng)的井下智能通信分站的研究</p><p><b> 摘要</b></p><p> 井下智能通信分站分站是煤礦井下各安全監(jiān)控模塊與井上安全監(jiān)控中心之間數(shù)據(jù)傳輸?shù)臉屑~,負(fù)責(zé)安全監(jiān)控中心與安全監(jiān)控模塊之間的數(shù)據(jù)的采集與通信。通信分站能否有效工作決定了煤礦安全監(jiān)控能否順利進(jìn)行,在煤礦安監(jiān)中發(fā)揮著重要作用。</p><
2、;p> 針對(duì)數(shù)據(jù)采集分站的工作要求,本文采用了高性能ARM9芯片S3C2410為主控芯片,通過SPI接口控制以太網(wǎng)控制器芯片實(shí)現(xiàn)TCP/IP通信,通過內(nèi)嵌的CAN控制器模塊實(shí)現(xiàn)CAN通信,并移植了μC/OS-Ⅱ操作系統(tǒng)使整個(gè)設(shè)計(jì)具有可靠性高、擴(kuò)展能力強(qiáng)等特點(diǎn)。</p><p> 論文首先簡(jiǎn)要介紹了煤礦礦井?dāng)?shù)據(jù)采集分站的研究背景與意義,討論了數(shù)據(jù)通信部分的實(shí)施方案,得出該數(shù)據(jù)采集分站與井上監(jiān)控中心之間用以
3、太網(wǎng)組網(wǎng),與井下監(jiān)控節(jié)點(diǎn)之問以CAN網(wǎng)絡(luò)組網(wǎng)的方案。</p><p> 本文的中心工作圍繞煤礦礦井?dāng)?shù)據(jù)采集分站的硬件設(shè)計(jì)中各個(gè)獨(dú)立的模塊進(jìn)行,詳細(xì)介紹了TCP/IP通信模塊的設(shè)計(jì)。對(duì)電源和復(fù)位、CAN通信、LCD顯示、參數(shù)修改與存儲(chǔ)模塊也一并作了介紹。</p><p> 在硬件設(shè)計(jì)的基礎(chǔ)上,進(jìn)行了基于μC/OS-Ⅱ操作系統(tǒng)的軟件設(shè)計(jì)。軟件設(shè)計(jì)包括驅(qū)動(dòng)程序與系統(tǒng)任務(wù)兩部分。驅(qū)動(dòng)程序部分包
4、括各個(gè)模塊的實(shí)現(xiàn)過程,主要對(duì)TCP/IP通信的實(shí)現(xiàn)進(jìn)行了詳細(xì)介紹j在系統(tǒng)任務(wù)部分,根據(jù)數(shù)據(jù)采集分站各個(gè)模塊的實(shí)際作用,分配了任務(wù)的優(yōu)先級(jí),并介紹了數(shù)據(jù)采集分站各個(gè)任務(wù)的設(shè)計(jì)流程。</p><p> 關(guān)鍵字:通信分站,ARM,μC/OS-Ⅱ,TCP/IP</p><p> THE RESEARCH OF INTELLIGENT COMMUNICATIONS BASED ON EMBEDD
5、ED UNDERGROUND SUB-STATION</p><p><b> ABSTRACT</b></p><p> Underground sub-station of Intelligent Communications is the hinge between the safety-monitoring module under the mine an
6、d the safety-monitoring center above the mine. it takes charge of data collection and communication between the safety-monitoring module and the safety-monitoring. .It is determined by data collection substation weather
7、the coal mine safety. monitoring can work efficiently, and the data collection plays important part in the coal mine safety-monitoring.</p><p> Aiming at the requests.high performance ARM9 chip S3C2410 is a
8、dopted asmain processor by this paper through the SPI, the Ethernet controller chip is driven and the TCP/IP communication is realized. Through the inner CAN controller of ARM. the CAN communication is realized as well .
9、Embedded real-time operation system μC/OS-Ⅱ which is transplanted to the project. the whole system has the features of high reliability and strong expand ability.</p><p> the main topic of this paper is the
10、 design of TCP/IP communication module</p><p> which is being introduced around each independent module of coal mine data collection substation. the power and reset module. CAN communication module. LCD dis
11、play module. rework and storage for parameter module are introduced as well. </p><p> On the foundation of the hardware design, the software design based on operation system μC/OS-Ⅱ is processed. The softwa
12、re design contains two parts. One is hardware driver program, another is system task. Driver program contains the realization process of each module. and the realization process of TCP/IP communication is mainly introduc
13、ed. According to the practical function of each module of the substation, the PRI of tasks is assigned and the design flows of coalmine data collection substati</p><p> KEYWORDS: communication sub-station,A
14、RM,μC/OS-Ⅱ,TCP/IP</p><p><b> 目錄</b></p><p><b> 摘要(中文)I</b></p><p><b> 摘要(英文)II</b></p><p><b> 1 緒論1</b></p>
15、<p> 1.1 課題背景與意義1</p><p> 1.2 國(guó)內(nèi)研究現(xiàn)狀1</p><p> 1.3 系統(tǒng)設(shè)計(jì)要求2</p><p> 1.4 本文主要設(shè)計(jì)工作2</p><p> 2 分站的硬件設(shè)計(jì)與實(shí)現(xiàn)4</p><p> 2.1 系統(tǒng)硬件組成4</p><
16、;p> 2.2 主控芯片及外擴(kuò)存儲(chǔ)電路4</p><p> 2.2.1 主控芯片4</p><p> 2.2.2 FLASH接口電路設(shè)計(jì)4</p><p> 2.2.4 SDRAM接口電路設(shè)計(jì)5</p><p> 2.3 電源及復(fù)位電路8</p><p> 2.3.1 電源8</p&
17、gt;<p> 2.3.2 復(fù)位電路9</p><p> 2.4 以太網(wǎng)接口電路9</p><p> 2.5 LCD及觸屏接口電路10</p><p> 2.6 JTAG接口設(shè)計(jì)11</p><p> 2.7.1 數(shù)據(jù)采集模塊12</p><p> 2.7.2 控制模塊14<
18、/p><p> 2.8 PCB設(shè)計(jì)15</p><p> 3 分站的軟件設(shè)計(jì)與實(shí)現(xiàn)17</p><p> 3.1 μC/OS-Ⅱ簡(jiǎn)介17</p><p> 3.2 μC/OS-Ⅱ在S3C2410上的移植19</p><p> 3.3 分站各任務(wù)軟件設(shè)計(jì)23</p><p> 3
19、.3.1 任務(wù)的劃分及優(yōu)先級(jí)23</p><p> 3.3.2 任務(wù)間數(shù)據(jù)交換24</p><p> 3.3.3輪詢與UDP處理任務(wù)24</p><p> 3.3.4 ZLG/IP簡(jiǎn)介25</p><p> 3.3.5 TCP/IP分析26</p><p> 3.3.6 收發(fā)數(shù)據(jù)處理任務(wù)30<
20、;/p><p> 3.3.7 監(jiān)測(cè)任務(wù)34</p><p> 4 全文總結(jié)及展望37</p><p><b> 參考文獻(xiàn)38</b></p><p><b> 謝辭40</b></p><p><b> 1 緒論</b></p>
21、<p> 1.1 課題背景與意義</p><p> 能源工業(yè)是我國(guó)經(jīng)濟(jì)發(fā)展命脈所在,中國(guó)是世界上最大的煤炭消費(fèi)國(guó)和生產(chǎn)國(guó)。近年來,隨著石油資源的緊張,石油價(jià)格的飆升,煤炭行業(yè)的重要性和不可替代性也日益凸顯。</p><p> 改革開放以來,我國(guó)煤炭工業(yè)取得巨大成就,2007年煤炭產(chǎn)量達(dá)到25.23億噸。但是煤炭行業(yè)的安全生產(chǎn)情況不容樂觀。2001~2005年,全國(guó)煤礦共
22、發(fā)生事故18514起,死亡31064人,平均每年發(fā)生各類事故約3702起,死亡約6213人,其中,發(fā)生一次死亡30人以上的重特大事故42起,平均每年發(fā)生42起多,占全國(guó)各類特大事故起數(shù)的36%。特別是從2004年第三季度到2005年地煤礦相繼發(fā)生了6起死亡百人以上的特備重大事故,損失慘重,造成了嚴(yán)重的社會(huì)影響。因此,對(duì)礦井有害氣體等危險(xiǎn)成分的監(jiān)測(cè)和對(duì)通風(fēng)設(shè)備及各種設(shè)備運(yùn)行狀態(tài)的監(jiān)測(cè)及控制十分重要。</p><p>
23、; 安全監(jiān)控是實(shí)現(xiàn)礦井安全生產(chǎn)預(yù)防事故的主要措施之一,也是現(xiàn)代化礦井管理的重要技術(shù)措施,我國(guó)自主研發(fā)的多種監(jiān)控系統(tǒng)對(duì)改善煤礦安全生產(chǎn)狀況起到了積極作用,通過對(duì)井下環(huán)境參數(shù)的分析,為事故發(fā)生的可能性提供數(shù)據(jù)資料,以便于對(duì)將要發(fā)生的事故采取防范措施;對(duì)即將發(fā)生的事故及時(shí)給予報(bào)警,自動(dòng)實(shí)現(xiàn)斷電,以避免事故的擴(kuò)大化;在發(fā)生事故時(shí),及時(shí)給出逃生路線,為實(shí)施救援提供信息。但是很多監(jiān)控系統(tǒng)在實(shí)際應(yīng)用時(shí)存在著弊端,由于不同系統(tǒng)的監(jiān)控相互獨(dú)立,兼容性差
24、,而且網(wǎng)絡(luò)化的監(jiān)控系統(tǒng)由于采用不同的通信及信息交換標(biāo)準(zhǔn),很難做到信息共享和統(tǒng)一管理。充分利用先進(jìn)的信息化手段和工業(yè)監(jiān)控技術(shù),加快礦井機(jī)械化、自動(dòng)化和信息化建設(shè),解決我國(guó)、我省煤礦安全生產(chǎn)中的共性、關(guān)鍵性技術(shù)難題,是改善我國(guó)煤礦安全狀況的重要手段和推動(dòng)煤礦安全生產(chǎn)工作的有力措施。隨著信息化、智能化、網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)以其體積小、可靠性高、功耗低等特點(diǎn)獲得了廣闊的發(fā)展空間。</p><p> 1.2 國(guó)內(nèi)
25、研究現(xiàn)狀</p><p> 我國(guó)監(jiān)測(cè)監(jiān)控技術(shù)應(yīng)用較晚,80年代初,從波蘭、法國(guó)、德國(guó)、英國(guó)和美國(guó)等(如DAN6400、TF200、MINOS和Senturion-200)引進(jìn)了一批安全監(jiān)控系統(tǒng),裝備了部分煤礦;在引進(jìn)的同時(shí),通過消化、吸收并結(jié)合我國(guó)煤礦的實(shí)際情況,先后研制出KJ2、KJ4、KJ8、KJl0、KJl3、KJl9、KJ38、KJ66、KJ75、KJ80、KJ92等監(jiān)控系統(tǒng),在我國(guó)煤礦已大量使用。實(shí)踐
26、表明,安全監(jiān)控系統(tǒng)為煤礦安全生產(chǎn)和管理起到了十分重要的作用,各局礦已作為一項(xiàng)重大安全裝備。常州自動(dòng)化所研制的KJ2系統(tǒng)于1988年通過鑒定;北京航空部634所研制開發(fā)的KJ4系統(tǒng)于1986年通過鑒定;鎮(zhèn)江煤礦專用設(shè)備廠生產(chǎn)的A.1系統(tǒng)于1988年通過鑒定;天津煤礦專用設(shè)備廠引進(jìn)生產(chǎn)的森透里昂系統(tǒng)也于同一時(shí)期通過鑒定;常州自動(dòng)化所研究的KJ22型經(jīng)濟(jì)型煤礦監(jiān)控系統(tǒng)于1991年通過鑒定。90年代以來,緊跟世界監(jiān)測(cè)監(jiān)控系統(tǒng)發(fā)展的潮流,研制開發(fā)
27、出了一批具有世界先進(jìn)水平的監(jiān)控系統(tǒng)。如北京仙島新技術(shù)研究所和撫順安全儀器廠聯(lián)合開發(fā)的KJ66系統(tǒng)、煤科院重慶分院的KJ90系統(tǒng)、上海嘉利礦山電子公司的KJ92系統(tǒng)、煤科總院常</p><p> 1.3 系統(tǒng)設(shè)計(jì)要求</p><p> 井下監(jiān)控分站是煤礦安全生產(chǎn)監(jiān)控系統(tǒng)中的重要組成設(shè)備,它與隔爆兼本安型穩(wěn)壓電源及多種礦用傳感器組合在一起,在中心站的管理下實(shí)現(xiàn)對(duì)礦井環(huán)境參數(shù)記取工況參數(shù)的監(jiān)
28、測(cè)與控制。根據(jù)最新的中華人民共和國(guó)安全生產(chǎn)行業(yè)標(biāo)準(zhǔn)AQ-2006--《煤礦安全監(jiān)控系統(tǒng)通用技術(shù)要求》的規(guī)定。井下分站應(yīng)該具有模擬量、開關(guān)量的采集、傳輸、斷電存儲(chǔ)、顯示、超限聲光報(bào)警及斷電控制等功能,用來實(shí)時(shí)監(jiān)測(cè)甲烷濃度、一氧化碳濃度、二氧化碳濃度、氧氣濃度、風(fēng)速、負(fù)壓、溫度、煙霧、饋電狀態(tài)、風(fēng)門狀態(tài)、風(fēng)窗狀態(tài)、風(fēng)筒狀態(tài)、局部通風(fēng)機(jī)開停、主通風(fēng)機(jī)開停等,能夠?qū)崿F(xiàn)甲烷超限聲光報(bào)警、斷電和甲烷風(fēng)電閉鎖控制等,能夠接收上位機(jī)的控制命令實(shí)施手動(dòng)斷
29、電或者復(fù)電功能。</p><p> 1.4 本文主要設(shè)計(jì)工作</p><p> 一﹑根據(jù)《煤礦安全監(jiān)控系統(tǒng)通用技術(shù)要求》,完成了監(jiān)測(cè)監(jiān)控系統(tǒng)中井下監(jiān)控分站的總體軟硬件設(shè)計(jì)。實(shí)現(xiàn)功能如下:</p><p> 1)開機(jī)自檢和本機(jī)初始化功能;</p><p> 2)具有初始化參數(shù)掉電保護(hù)功能,分站停電后初始化參數(shù)不會(huì)丟失;</p>
30、;<p> 3)分站設(shè)程控功能(實(shí)現(xiàn)斷點(diǎn)儀功能、風(fēng)電瓦斯閉鎖功能、瓦斯管道監(jiān)測(cè)功能和一般的環(huán)境監(jiān)測(cè)功能等);</p><p> 4)死機(jī)自復(fù)位功能且通知中心站;</p><p> 5)接收地面中心站初始化本分站參數(shù)設(shè)置功能(如傳感器配接通道號(hào)、量程、斷電點(diǎn)、斷電點(diǎn));</p><p> 6)分站可配接多種傳感器類型(電壓型、電流型或頻率型等)&
31、lt;/p><p> 7)分站接收中心站對(duì)本分站指定通道輸出控制繼電器實(shí)施手控操作功能和異地?cái)嚯姽δ埽?lt;/p><p> 8)具備接收其它設(shè)備接口信息的能力;</p><p> 9)LCD顯示,顯示分站端口所接傳感器狀態(tài),測(cè)量值等使用鍵盤和紅外遙控器顯示或修改傳感器類型,報(bào)警、斷電值等參數(shù);</p><p> 11)分站的工作狀態(tài)和傳感器
32、的故障顯示。</p><p> 二.與中心站聯(lián)調(diào),實(shí)現(xiàn)與網(wǎng)絡(luò)有關(guān)功能</p><p> 三.將電源、分站、各種傳感器、斷電儀等安裝到巷道環(huán)境,模擬實(shí)現(xiàn)井下監(jiān)控。</p><p> 2 分站的硬件設(shè)計(jì)與實(shí)現(xiàn)</p><p> 目前,國(guó)內(nèi)監(jiān)控系統(tǒng)主要采用中心站+分站的結(jié)構(gòu)。在煤礦安全監(jiān)測(cè)系統(tǒng)中,井下數(shù)據(jù)采集、控制分站占有非常重要的地位。μ
33、C/OS-Ⅱ支持下的網(wǎng)絡(luò)化數(shù)據(jù)采集分站兼有嵌入式網(wǎng)關(guān)、數(shù)據(jù)采集和控制分站的功能,采用改進(jìn)的協(xié)議層模型,兼容通用TCP/IP。同時(shí),通過對(duì)不同類型的數(shù)據(jù)劃分優(yōu)先級(jí),確保監(jiān)測(cè)監(jiān)控系統(tǒng)的實(shí)時(shí)性要求。</p><p> 這一章主要介紹分站的結(jié)構(gòu)、功能及硬件設(shè)計(jì)。</p><p> 2.1 系統(tǒng)硬件組成</p><p> 如下圖所示,系統(tǒng)的硬件構(gòu)成主要包括作為主控芯片的
34、ARM微處理器,、電源、以太網(wǎng)接口、人機(jī)接口、存儲(chǔ)器接口以及JTAG接口等。</p><p> 圖2-1 系統(tǒng)硬件框圖 </p><p> 2.2 主控芯片及外擴(kuò)存儲(chǔ)電路</p><p> 2.2.1 主控芯片</p><p> 分站中央處理器采用三星公司生產(chǎn)的RISC嵌入式處理器
35、S3C2410 。S3C2410采用0.18um制造工藝的32位微控制器。該處理器擁有:獨(dú)立的16KB指令Cache和16KB數(shù)據(jù)Cache,MMU,支持TFT的LCD控制器,NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2個(gè)USB主機(jī),1個(gè)USB設(shè)備,SD主機(jī)和MMC接口,2路SPI。S3C2410
36、處理器最高可運(yùn)行在203MHz。核心板的尺寸僅相當(dāng)于名片的2/3大小,尺寸如此小巧的嵌入式核心板是國(guó)內(nèi)首創(chuàng)。開發(fā)商可以充分發(fā)揮想象力,設(shè)計(jì)制造出小體積,高性能的嵌入式應(yīng)用產(chǎn)品。圖2-1為S3C2410內(nèi)部結(jié)構(gòu)框圖。</p><p> 2.2.2 FLASH接口電路設(shè)計(jì)</p><p> Flash存儲(chǔ)器是一種可在系統(tǒng)(In一System)進(jìn)行電擦寫,掉電后信息不丟失的存儲(chǔ)器。它具有低功
37、耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點(diǎn),并且可由內(nèi)部嵌入的算法完成對(duì)芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。作為一種非易失性存儲(chǔ)器,F(xiàn)lash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。常用的Flash為8位或16位的數(shù)據(jù)寬度,編程電壓為單3.3v。主要的生產(chǎn)廠商為ATMEL、AMD、HYUNDAI、SST等,他們生產(chǎn)的同型器件一般具有相同的電氣特性和封裝形式,
38、</p><p><b> 可通用。</b></p><p> 本系統(tǒng)使用Flash存儲(chǔ)器,主要用來存放系統(tǒng)引導(dǎo)程序boot loader、己調(diào)試好的用戶程序以及嵌入式操作系統(tǒng)。μC/OS-Ⅱ操作系統(tǒng)本身也要占用二十幾兆</p><p> 的空間,考慮到成本與存儲(chǔ)空間的因素,在本系統(tǒng)中選配三星公司的K9F1208構(gòu)</p>
39、<p> 建8位的Flash存儲(chǔ)系統(tǒng)。K9F1208屬于NAND Flash類型,單片容量為64MB。工作電壓為2.7一3.6V,采用48PIN一TSOPI封裝,采用8位數(shù)據(jù)寬度工作模式。</p><p> K9F1208僅需3V電壓即可完成在系統(tǒng)的編程與擦除操作,通過對(duì)其內(nèi)部的命令寄存器寫入標(biāo)準(zhǔn)的命令序列,可對(duì)Flash進(jìn)行編程(燒寫)、整片擦除、按扇區(qū)擦除以及其它操作。圖2-3為本系統(tǒng)構(gòu)建的8位
40、Flash存儲(chǔ)系統(tǒng)的實(shí)際應(yīng)用電路圖。</p><p> S3C2410的nFCE (G17管腳)接至K9F1208的片選(/CE)端。S3C2410的讀使能(nFRE),寫使能(nFWE),忙閑狀態(tài)(RnB),地址端使能(ALE),命令端使能(CLE),數(shù)據(jù)線(DALAO一DArA7)分別連接到KgF1208UOA的引腳,/wE,R/B,ALE,CLE,輸入輸出端口(100一107)。這樣,該Flash就被掛接
41、到CPU的BANKO空間,即系統(tǒng)復(fù)位時(shí)唯一有定義的存儲(chǔ)區(qū)域。系統(tǒng)上電或是復(fù)位后會(huì)直接尋址到Ox000O0000地址獲取引導(dǎo)指令并開始執(zhí)行</p><p> 2.2.4 SDRAM接口電路設(shè)計(jì)</p><p> 與FLASH存儲(chǔ)器相比較,SDRAM不具有掉電保持?jǐn)?shù)據(jù)的特性,但其存取速度大大高于FLASH存儲(chǔ)器,且具有讀/寫的屬性。當(dāng)系統(tǒng)初始化后,固化在FLASH中的程序代碼便調(diào)入SDRA
42、M中運(yùn)行,以提高系統(tǒng)的運(yùn)行速度,同時(shí),系統(tǒng)及用戶堆棧、運(yùn)行數(shù)據(jù)也都放在SDRAM中。SDRAM具有單位空間存儲(chǔ)容量大和價(jià)格便宜的優(yōu)點(diǎn),已廣泛應(yīng)用于各種嵌入式系統(tǒng)中。SDRAM的存儲(chǔ)單元可以理解為一個(gè)電容,總是傾向于放電,為避免數(shù)據(jù)丟失,必須定時(shí)刷新(充電)。因此,要在系統(tǒng)中使用SDRAM,就要求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路。S3C24lO及其他一些ARM芯片在片內(nèi)具有獨(dú)立的SDRAM刷新控制邏輯,可方便的
43、與SDRM接入??紤]到運(yùn)行速度,本系統(tǒng)采用兩片HY57V561620并聯(lián)構(gòu)建32位的SDRAM存貯器系統(tǒng),共64MB的SDRAM空間,可滿足嵌入式操作系統(tǒng)及各種相對(duì)復(fù)雜的算法的運(yùn)行要求</p><p> 圖 2-2 主控芯片內(nèi)部框圖</p><p> 圖 2-3 8位Flash存儲(chǔ)系統(tǒng)的實(shí)際應(yīng)用電路圖</p><p> 圖2-4給出了本系統(tǒng)32位SDRAM存儲(chǔ)
44、器系統(tǒng)圖,兩片HY57V561620并聯(lián)構(gòu)建32位的SDRAM存儲(chǔ)器系統(tǒng),其中一片為高16位,另一片為低16位,將兩片HY57V561620作為一個(gè)整體配置到SDRAMBank6,即將S3C2410的nGCS6接至兩片HY57V561620的nCS端。</p><p> 這里面應(yīng)注意:芯片的AO引腳并沒有接在處理器的AO地址線上,這是因?yàn)樵谔幚砥鞯拇鎯?chǔ)空間中,字節(jié)是表示存儲(chǔ)容量的唯一單位。而SDRAM為32位寬
45、度的時(shí)候,它的每一個(gè)存儲(chǔ)單元都包含4B,因此當(dāng)它的地址線Al-AO為01時(shí),處理器上對(duì)應(yīng)的空間是A3:AZ為01。正因?yàn)槿绱怂栽趫D中,SDRAM的AO引腳接到了S3C2410處理器的AZ地址線上面,依次類推,SDRAM的A12-A1引腳接到了S3C24lO處理器的A14-A3地址線上面。BA地址線其實(shí)是SDRAM內(nèi)部bank的地址線,也就代表了SDRAM內(nèi)存的最高位。因?yàn)楸鞠到y(tǒng)中SDRAM內(nèi)存為64MB,那就需要A25~AO引腳來尋址
46、,所以BAI一BAO地址線就應(yīng)該接到A25一A24引腳上。另外需要注意的是,SDRAM內(nèi)存行地址和列地址是復(fù)用的,所以地址線數(shù)目并不需要26條這么多。</p><p> 圖2-4 SDRAM接口電路</p><p> 2.3 電源及復(fù)位電路</p><p><b> 2.3.1 電源</b></p><p> 整
47、個(gè)分站需要5V、3.3V、1.8V、三種電源。其中, I/O接口、LCD接口需要5V電源供電;S3C2410需要1.8V電源供電。其它部分的電壓都為3.3V。由于邏輯電路部分功耗很小,S3C2410的功耗不超過400mw,系統(tǒng)主要的功率消耗為L(zhǎng)CD部分,也不超過500mA,所以選用線性穩(wěn)壓源方案。輸入電壓為直流SV,經(jīng)過濾波后送給外圍的外擴(kuò)接口、I/O接口電路,同時(shí)送到芯片LMlll7。LMlll7將SV直流變?yōu)?.3V并經(jīng)過濾波再經(jīng)過
48、MIC52O7芯片,變?yōu)?.8V供處理器內(nèi)核。下圖為5V到3.3V變換電路;以及3.3V到1.8V變換電路。</p><p> 圖 2-5 5V到3.3V變換電路 </p><p> 圖 2-6 3.3V到1.8V轉(zhuǎn)換電路 </p><p> 2.3.2 復(fù)位電路</p><p> 復(fù)位對(duì)于一個(gè)系統(tǒng)來說很重要。各個(gè)單元要進(jìn)入
49、正常工作狀態(tài),需要可靠的復(fù)位,而一旦MCU處于未知狀態(tài),比如程序“跑飛”或進(jìn)入死循環(huán),就需要強(qiáng)行將系統(tǒng)復(fù)位。在正常情況下,一般有上電復(fù)位和手動(dòng)復(fù)位。本文設(shè)計(jì)的復(fù)位電路原理圖如下圖,是有簡(jiǎn)單的RC延時(shí)電路構(gòu)成,nRESET用于觸摸屏、JTAG低電平復(fù)位,RESET用于以太網(wǎng)CS89OOA高電平復(fù)位。</p><p> 圖 2-7 復(fù)位電路</p><p> 2.4 以太網(wǎng)接口電路<
50、;/p><p> 通過以太網(wǎng)口,各分站之間以及分站和地面主機(jī)之間可以組網(wǎng),實(shí)現(xiàn)對(duì)分站的維護(hù)和監(jiān)視、可以通過以太網(wǎng)訪問分站的監(jiān)測(cè)數(shù)據(jù)。由于S3C2410內(nèi)部沒有以太網(wǎng)控制模塊,所以需要一個(gè)與之匹配的控制芯片。我們采用Cirrus Logic公司的CS8900A芯片作為核心,設(shè)計(jì)了以太網(wǎng)接口模塊,CS890OA是一款單片的全雙工的以太網(wǎng)控制芯片,其主要功能塊包括了一個(gè)ISA總線接口、一個(gè)8O2.3MAC引擎、內(nèi)部緩沖存
51、儲(chǔ)器、一個(gè)串行EEPROM接口和一個(gè)10BASE-T/AUI接口收發(fā)濾波器。在正常操作下,CS8900A完成兩個(gè)基本功能即以太網(wǎng)包的發(fā)送和接收,在發(fā)送和接收之前必須要將它配置好。上電復(fù)位后,CS8900A要為收發(fā)包進(jìn)行配置,各種各樣的參數(shù)要寫入內(nèi)部的配置和控制寄存器,如:存儲(chǔ)器基地址,以太網(wǎng)物理地址,接收的幀類型,使用何種媒體接口等。</p><p> 在CS89OOA的前端配有脈沖變壓器HR60L627,可對(duì)
52、網(wǎng)絡(luò)信號(hào)進(jìn)行脈沖波形變換,并起到隔離的作用。本文設(shè)計(jì)的以太網(wǎng)接口采用了RJ一45連接器,可以直接與普通網(wǎng)線連接,連接簡(jiǎn)單兼容性強(qiáng)。CS8900A還可以直接驅(qū)動(dòng)LED,這些LED可以指示以太網(wǎng)的鏈路狀態(tài)以及總線和網(wǎng)絡(luò)的活動(dòng)情況。在HR60L627型RJ一45連接器上已經(jīng)集成了兩個(gè)表示這種狀態(tài)的LED,只要把RJ一45連線上的LED信號(hào)線連接到CS8900A的LED狀態(tài)指示信號(hào)引腳,這些LED便能正常工作。以太網(wǎng)接口電路如下圖:</p
53、><p> 圖 2-8 以太網(wǎng)接口電路</p><p> 2.5 LCD及觸屏接口電路</p><p> 本文液晶屏采用了三星公司的帶觸摸屏的液晶顯示模塊:LTS350QI一PDI。液晶顯示(LCD)以其功耗低、體積小、外形美觀、價(jià)格低廉等多種優(yōu)勢(shì)在儀器儀表產(chǎn)品中得到越來越多的應(yīng)用。與發(fā)光二極管(LED)相比,它雖然存在驅(qū)動(dòng)電路邏輯比較復(fù)雜、較難與單片機(jī)接口等缺點(diǎn)
54、。但是,隨著近年來大規(guī)模集成電路的迅速發(fā)展,這些缺點(diǎn)己經(jīng)克服。目前,液晶顯示己經(jīng)進(jìn)入成熟階段并被大量應(yīng)用于便攜式儀表等系統(tǒng)中。在便攜式的電子類產(chǎn)品中,觸摸屏由于其輕便、占用空間少、方便靈活等優(yōu)點(diǎn),己經(jīng)逐漸取代鍵盤和鼠標(biāo)成為嵌入式系統(tǒng)常選用的人機(jī)交互工具。按照觸摸屏的工作原理和傳輸信息的介質(zhì),我們把觸摸屏分為四種,它們分別為電阻式、電容感應(yīng)式、紅外線式以及表面聲波式。觸摸屏附著在顯示器的表面,與顯示器相配合使用,如果能測(cè)量出觸摸點(diǎn)在屏幕上
55、的坐標(biāo)位置,則可根據(jù)顯示屏上對(duì)應(yīng)坐標(biāo)點(diǎn)的顯示內(nèi)容或圖符獲知觸摸者的意圖。本文中采用的是四線制的電阻式觸摸屏。</p><p> S3C2410接4線電阻式觸摸屏的電路原理如下圖所示。整個(gè)觸摸屏由橫向電阻和縱向電阻組成,由nYPON,YMON nXPON,XMON四個(gè)控制信號(hào)控制4個(gè)MOS管(S1,S2,S3,S4)的通斷。S3C2410有8個(gè)模擬輸入通道。其中,通道7作為觸摸屏接口的X坐標(biāo)輸入,通道5作為觸摸屏
56、接口的Y坐標(biāo)輸入。在接入S3C2410A觸摸屏接口前,它們都通過一個(gè)阻容式低通濾波器濾除坐標(biāo)信號(hào)噪聲。這里的濾波十分重要,如果傳遞給S3C2410模擬輸入接口的信號(hào)中干擾過大,不利于后續(xù)的軟件處理。在采樣過程中,軟件只用給特殊寄存器置位,S3C2410的觸摸屏控制器就會(huì)自動(dòng)控制觸摸屏接口打開或關(guān)閉各MOS管,按順序完成X坐標(biāo)點(diǎn)采集和Y坐標(biāo)點(diǎn)采集。</p><p> 圖 2-9 S3C2410接四線電阻式觸摸屏電
57、路原理</p><p> S3C2410內(nèi)部帶有LCD控制器,因此可以很方便地去控制各種類型的LCD屏,本系統(tǒng)采用的是帶有觸摸屏的TFT液晶顯示屏,接口電路如下圖所示。對(duì)于控制TFT屏來說,除了要給它送視頻數(shù)據(jù)(VD[23:0])以外,還有以下一些控制信號(hào)是必不可少的,分別是:VFRAME(VSYNC):LCD控制器和驅(qū)動(dòng)器之間的幀同步信號(hào);VLINE(HSYNC):LCD控制器和驅(qū)動(dòng)器之間的行同步信號(hào);VCL
58、K:LCD控制器和驅(qū)動(dòng)器之間的像素時(shí)鐘信號(hào);VM(VDEN):LCD驅(qū)動(dòng)器的AC信號(hào);LCD_PWREN:液晶屏電源使能控制信號(hào);LEND:線結(jié)束信號(hào)。</p><p> 2.6 JTAG接口設(shè)計(jì)</p><p> JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測(cè)試電路TAP,通過專用的JTAG測(cè)試工具對(duì)具有JTAG接口芯片的硬件電路進(jìn)行邊界掃描和故障檢測(cè)。通過JTAG接口
59、,系統(tǒng)還可以用于實(shí)現(xiàn)在系統(tǒng)編程功能、對(duì)芯片內(nèi)部的部件進(jìn)行訪問,因而是開發(fā)嵌入式系統(tǒng)的一種簡(jiǎn)捷高效的手段。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO。分別為測(cè)試模式選擇、測(cè)試時(shí)鐘、測(cè)試數(shù)據(jù)輸入和測(cè)試數(shù)據(jù)輸出。有些器件還會(huì)多一個(gè)nTRST信號(hào),用于狀態(tài)復(fù)位,S3C2410就有nTRST信號(hào)。本系統(tǒng)的調(diào)試接口電路如圖2-11。</p><p> 圖 2-10 TFTLCD接口電路</p>
60、<p> 圖 2-11 JTAG接口電路</p><p> 2.7 數(shù)據(jù)采集及控制模塊</p><p> 分站要求能夠連續(xù)監(jiān)測(cè)礦井的各種參數(shù),跟據(jù)監(jiān)測(cè)到的參數(shù)就地進(jìn)行斷電控制,并能夠執(zhí)行中心站發(fā)送的各種命令。下面將分兩部分詳細(xì)闡述。</p><p> 2.7.1 數(shù)據(jù)采集模塊</p><p> 傳感器種類繁多,如甲烷
61、、一氧化碳、風(fēng)速、溫度、水位、負(fù)壓等等。按照它們的信號(hào)輸出制式,可將其分為模擬量傳感器和開關(guān)量傳感器兩類。模擬量傳感器,其輸出信號(hào)為200—1000Hz的方波頻率信號(hào)、1-5mA電流信號(hào)、4-20mA電流信號(hào),而開關(guān)量傳感器則包括二態(tài)觸點(diǎn)型和三態(tài)開關(guān)量型兩種。二態(tài)觸點(diǎn)型開關(guān)量傳感器輸出的只是斷開閉合兩個(gè)狀態(tài),三態(tài)開關(guān)量傳感器的輸出信號(hào)有O-5-10mA和0-1-5mA兩種。</p><p> 本文設(shè)計(jì)的井下分站
62、共有16路傳感器測(cè)量通道,其中前八路為模擬量開關(guān)量可復(fù)用輸入通道,后八路為單純的開關(guān)量輸入通道。對(duì)于200-1000Hz的頻率信號(hào),通過光耦整形后直接接到ARM的AD/GPIO復(fù)用引腳。對(duì)于1-5mA和4-20mA電流信號(hào)則通過600Ω和150Ω高精度電阻變?yōu)樽畲?V電壓接入AD/GPIO復(fù)用引腳。兩者之間通過跳線來切換輸入模式。</p><p> 本裝置采用的S3C2410處理器自帶了16個(gè)通道的10位A/D
63、轉(zhuǎn)換器,但是不能滿足采樣數(shù)據(jù)精度的要求,本文采用兩片MAXIM公司的MAX125轉(zhuǎn)換器來實(shí)現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換。該芯片內(nèi)部包含4個(gè)采樣保持器,各自對(duì)應(yīng)一個(gè)2選1的模擬輸入(分為A、B兩組),輸出經(jīng)4選1開關(guān)連接到一個(gè)14位、3us的模數(shù)轉(zhuǎn)換器。通道1到通道4順序轉(zhuǎn)換,存入片內(nèi)4×14位緩沖器中,最后給出轉(zhuǎn)換完成信號(hào)。MCU響應(yīng)后順序讀出各通道的A/D數(shù)據(jù)。MAX125的工作電壓為±5V,允許輸入電壓為±1
64、7V,因此有較高的使用安全性。</p><p> MAX125有8個(gè)可編程工作模式,通過雙向引腳D0/A0~D3/A3可向MAX125輸入數(shù)據(jù),通過編程來設(shè)定芯片工作模式,工作模式一旦設(shè)定 ,MAX125就能在指定的工作模式下連續(xù)轉(zhuǎn)換,直到重新編程或失電為止。其工作模式如表2-1所示。</p><p> 表 2-1 MAX125工作模式</p><p> MA
65、X125轉(zhuǎn)換啟動(dòng)信號(hào)由高變低時(shí)啟動(dòng)A/D轉(zhuǎn)換,其上升沿使片內(nèi)多個(gè)采樣保持器同時(shí)保持各自模擬輸入信號(hào)。根據(jù)設(shè)定的工作模式,順序轉(zhuǎn)換各通道的模擬輸入,并將量化值存入片內(nèi)緩沖器。當(dāng)最后一個(gè)通道轉(zhuǎn)換完成,給出轉(zhuǎn)換完成信號(hào),通知MCU讀A/D數(shù)據(jù),第一個(gè)讀信號(hào)的下降沿清除轉(zhuǎn)換完成信號(hào)。</p><p> 為了實(shí)現(xiàn)兩塊A/D采樣模塊和其他模塊之間能協(xié)調(diào)工作,我們選用一片Altera公司的復(fù)雜可編程邏輯器件EPM3032來實(shí)
66、現(xiàn)。兩片A/D轉(zhuǎn)換芯片啟動(dòng)信號(hào)和它們的片選地址由MCU的nGCS5和地址線在CPLD中經(jīng)過一定的邏輯關(guān)系形成。本文采用的轉(zhuǎn)換模式是同時(shí)啟動(dòng)兩片A/D轉(zhuǎn)換芯片的A組四通道進(jìn)行轉(zhuǎn)換,再同時(shí)啟動(dòng)兩片A/D轉(zhuǎn)換芯片的B組四通道進(jìn)行轉(zhuǎn)換。A/D轉(zhuǎn)換芯片1的轉(zhuǎn)換結(jié)束信號(hào)與A/D轉(zhuǎn)換芯片2的轉(zhuǎn)換結(jié)束信號(hào)在CPLD中進(jìn)行邏輯 “或”后,作為兩片A/D轉(zhuǎn)換芯片轉(zhuǎn)換結(jié)束信號(hào)送到MCU的EINT0(N14)中斷引腳上。當(dāng)兩片A/D芯片的16路模擬量采樣結(jié)束后
67、,通過MCU的N14引腳給MCU發(fā)一個(gè)轉(zhuǎn)換結(jié)束信號(hào),MCU將16路模擬量的轉(zhuǎn)換結(jié)果按照設(shè)定好的工作模式的順序讀到MCU的內(nèi)存單元中,實(shí)現(xiàn)了16路模擬量的二次模擬量數(shù)據(jù)的采集。A/D轉(zhuǎn)換原理圖如圖2-12所示(取A/D轉(zhuǎn)換芯片1為例)。</p><p> 圖2-12 A/D轉(zhuǎn)換原理圖</p><p> 2.7.2 控制模塊</p><p> 本文共設(shè)計(jì)了8路斷電
68、輸出,其中兩路是近程斷電,通過控制本安電源箱中的繼電器來完成超限斷電,其他六路是遠(yuǎn)程斷電,通過控制本地繼電器對(duì)斷電儀實(shí)現(xiàn)閉鎖控制等功能。</p><p> 近程斷電只是給出一個(gè)控制電平信號(hào)。遠(yuǎn)程斷電是控制繼電器輸出觸點(diǎn)</p><p> 信號(hào)來對(duì)斷電儀進(jìn)行操作,如圖 2-13。</p><p> 控制芯片采用ULN2003,它的工作電壓高,工作電流大,灌電流可
69、達(dá)500mA,內(nèi)部集成反向泄流二極管,繼電器線圈不必再單獨(dú)安裝,節(jié)省了電路板空間。采用雙路繼電器,如圖 2-14,一路輸出觸點(diǎn)信號(hào)的同時(shí),另一路反饋高低電平信號(hào)給主控芯片,可以判斷繼電器是否確實(shí)動(dòng)作,有效的保障了斷電動(dòng)作的準(zhǔn)確執(zhí)行,避免了發(fā)出命令確因繼電器故障而沒有執(zhí)行的情況。這在煤礦安全生產(chǎn)中是具有重要意義的。</p><p> 圖 2-13 ULN2003接口電路</p><p>&
70、lt;b> 2.8 PCB設(shè)計(jì)</b></p><p> 井下環(huán)境比較潮濕,分站作為精密的監(jiān)測(cè)設(shè)備需要密封在箱體中。如果分站是一體化設(shè)計(jì),則在接入或者更換傳感器時(shí)必然要暴露在潮濕的空氣中,這將極大縮短分站的壽命和工作可靠性。因此本設(shè)計(jì)將整個(gè)分站分為四部分,分別為主控板,包括幾乎所有的功能電路,而接口板A和B只是單純的接線端子板。這樣的好處是可將主控板和顯示板密封,在接入傳感器時(shí)只對(duì)接口板進(jìn)行
71、操作,避免了主控板頻繁暴露,保障了分站的正常工作。分站機(jī)構(gòu)簡(jiǎn)圖如圖 2-15所示。</p><p> 在具體的PCB設(shè)計(jì)中,要嚴(yán)格按照《中華人民共和國(guó)爆炸性氣體環(huán)境用電氣設(shè)備第4部分:本質(zhì)安全型》的要求來設(shè)計(jì)。其中對(duì)印制電路板的導(dǎo)線寬度,允許電流,以及最小間隙等做了詳細(xì)的規(guī)定。</p><p> 圖 2-14 一路遠(yuǎn)程斷電輸出</p><p> 圖 2-15
72、分站結(jié)構(gòu)簡(jiǎn)圖</p><p> 3 分站的軟件設(shè)計(jì)與實(shí)現(xiàn)</p><p> 嵌入式實(shí)時(shí)操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中越來越重要。它的優(yōu)點(diǎn):首先,嵌入式實(shí)時(shí)操作系統(tǒng)提高了系統(tǒng)的可靠性。其次,提高了開發(fā)效率,縮短了開發(fā)周期。最后,嵌入式實(shí)時(shí)操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力。本文的軟件設(shè)計(jì)就是基于μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)來編寫的。&l
73、t;/p><p> 3.1 μC/OS-Ⅱ簡(jiǎn)介</p><p> μC/OS-Ⅱ的特點(diǎn)如下:</p><p><b> ●公開源代碼</b></p><p> ●可移植性(Portable)</p><p> μc/OS-Ⅱ源代碼除了與微處理器硬件相關(guān)的那部分是用匯編語言編寫的,絕大部分μc
74、/OS-Ⅱ的源碼是用移植性很強(qiáng)的ANSI C編寫的。并且用匯編語言編寫的部分已經(jīng)壓到最低限度,使得μc/OS-Ⅱ更方便地移植到其他微處理器上。</p><p> ●可固化(RO Mable)</p><p> μC/OS-Ⅱ是為嵌入式應(yīng)用而設(shè)計(jì)的操作系統(tǒng),這就意味著,只要用戶有固化手段(C編譯、連接、下載和固化),就可以將μc/OS-Ⅱ嵌入到用戶的產(chǎn)品中成為產(chǎn)品的一部分。</p&
75、gt;<p> ●可裁剪(Scalable)</p><p> 可以根據(jù)用戶的實(shí)際需要使用條件編譯來實(shí)現(xiàn)對(duì)μc/OS-Ⅱ的裁剪,這樣可以減少產(chǎn)品中的UC/OS-II所需的存儲(chǔ)器空間(RAM和ROM)。</p><p> ●占先式(Preemptive)</p><p> μc/OS-Ⅱ是可剝奪型的實(shí)時(shí)內(nèi)核,即總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù)。
76、</p><p><b> ●多任務(wù)</b></p><p> μc/OS-Ⅱ可以管理64個(gè)任務(wù)。目前這一版本保留4個(gè)最高優(yōu)先級(jí)和4個(gè)最低優(yōu)先級(jí)的任務(wù)給以后μc/OS-Ⅱ的版本使用,用戶應(yīng)用程序的任務(wù)最多可以有56個(gè)。</p><p><b> ●可確定性</b></p><p> 用戶能知
77、道μC/OS-Ⅱ的函數(shù)調(diào)用和服務(wù)的執(zhí)行時(shí)間。</p><p><b> ●任務(wù)棧</b></p><p> μC/OS-Ⅱ的每個(gè)任務(wù)有自己?jiǎn)为?dú)的棧,允許每個(gè)任務(wù)有不同的??臻g。</p><p><b> ●系統(tǒng)服務(wù)</b></p><p> μC/OS-Ⅱ提供了很多系統(tǒng)服務(wù),例如信號(hào)量、郵箱
78、、數(shù)據(jù)隊(duì)列、塊大小固定的內(nèi)存的申請(qǐng)與釋放、時(shí)間相關(guān)函數(shù)等。</p><p><b> ●中斷管理</b></p><p> 中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級(jí)更高的任務(wù)被該中斷喚醒,則高優(yōu)先級(jí)的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達(dá)255層。</p><p><b> ●穩(wěn)定性與可靠性</b>&
79、lt;/p><p> μC/OS-Ⅱ與μC/OS的內(nèi)核是一樣的,μC/OS-Ⅱ自1992年以來已有數(shù)百個(gè)商業(yè)應(yīng)用。</p><p> μC/OS-Ⅱ最常用的功能就是對(duì)任務(wù)的處理,每一個(gè)任務(wù)都是一個(gè)無限循</p><p> 環(huán),而且在任一時(shí)刻,任務(wù)的狀態(tài)一定是圖2-14中所示的5種狀態(tài)之一。</p><p><b> 刪除任務(wù)&l
80、t;/b></p><p> 收到消息 掛起</p><p> 掛起時(shí)間到 等待消息</p><p> 創(chuàng)建任務(wù) 任務(wù)調(diào)度 中斷</p><p> 刪除任務(wù) 任務(wù)被占先 中斷結(jié)束&l
81、t;/p><p><b> 刪除任務(wù)</b></p><p> 圖 3-1 μC/OS-Ⅱ任務(wù)狀態(tài)</p><p> 休眠態(tài)(Dormant):指任務(wù)駐留在內(nèi)存中,但并不被多任務(wù)內(nèi)核所調(diào)度。把任務(wù)交給內(nèi)核是通過調(diào)用0STaskCreate()或0STaskCreatExt()實(shí)現(xiàn)的。任務(wù)可以在多任務(wù)調(diào)度開始之前建立,也可以在其他運(yùn)行著的任務(wù)中
82、建立。任務(wù)不能由中斷服務(wù)程序建立。如果一個(gè)任務(wù)是在另一個(gè)任務(wù)的執(zhí)行過程中建立的,而且這個(gè)任務(wù)的優(yōu)先級(jí)高于建立它的那個(gè)任務(wù),那么剛剛建立的任務(wù)將立即執(zhí)行。一個(gè)任務(wù)可以通過調(diào)用0STaskDel()返回到休眠態(tài),或通過調(diào)用該函數(shù)讓另一個(gè)任務(wù)進(jìn)入睡眠態(tài)。</p><p> 就緒態(tài)(Ready):當(dāng)任務(wù)一旦建立,這個(gè)任務(wù)就已經(jīng)準(zhǔn)備好,可以運(yùn)行了。但由于該任務(wù)的優(yōu)先級(jí)低于正在運(yùn)行的任務(wù)的優(yōu)先級(jí),所以暫時(shí)還不能運(yùn)行,等待正
83、在運(yùn)行的任務(wù)釋放CPU。就緒態(tài)任務(wù)可以通過調(diào)用OSTaskDel0使任務(wù)返回到休眠態(tài)。</p><p> 運(yùn)行態(tài)(Running):準(zhǔn)備就緒的最高優(yōu)先級(jí)的任務(wù)獲得了CPU的使用權(quán),從而進(jìn)入運(yùn)行態(tài)。</p><p> 等待或掛起態(tài)(Waiting):正在運(yùn)行的任務(wù)由于調(diào)用延時(shí)函數(shù)0STimeDly()或等待某一事件的發(fā)生而將自身掛起,從而處于等待或掛起態(tài)。</p><
84、p> 被中斷態(tài)(Interrupt):發(fā)生中斷時(shí),中斷服務(wù)子程序獲得了CPU的使用,使得正在運(yùn)行的任務(wù)暫時(shí)不能運(yùn)行,從而進(jìn)入被中斷態(tài)。如果中斷服務(wù)子程序使一個(gè)優(yōu)先級(jí)更高的任務(wù)準(zhǔn)備就緒,那么中斷服務(wù)子程序返回之后,優(yōu)先級(jí)更高的任務(wù)進(jìn)入運(yùn)行態(tài)。否則,原先被中斷的任務(wù)繼續(xù)運(yùn)行。</p><p> 3.2 μC/OS-Ⅱ在S3C2410上的移植</p><p> 所謂移植,就是使一個(gè)實(shí)
85、時(shí)內(nèi)核能在某個(gè)微處理器或微控制器上運(yùn)行。為使μC/OS-Ⅱ可以正常工作,微處理器必須滿足下面的條件。</p><p> 1.處理器的C編譯器能產(chǎn)生可重入代碼。</p><p> 2.在程序中可以打開或關(guān)閉中斷。</p><p> 3.處理器支持中斷,并能產(chǎn)生定時(shí)中斷(通常在為10~1000Hz)。</p><p> 4.處理器支持能夠
86、容納一定量數(shù)據(jù)的硬件堆棧。</p><p> 5.處理器有將堆棧指針和其他CPU寄存器讀寫到堆棧(或者內(nèi)存)的指令。</p><p><b> 硬件</b></p><p> 圖 3-2 μC/OS-Ⅱ硬件和軟件體系結(jié)構(gòu)</p><p> 為了方便移植,大部分的} μC/OS-Ⅱ代碼是用C語言寫的;但仍需要用C和
87、匯編語言寫一些與處理器相關(guān)的代碼,如圖3-2,這是因?yàn)?μC/OS-Ⅱ在讀寫處理器寄存器時(shí)只能通過匯編語言來實(shí)現(xiàn)。 μC/OS-Ⅱ的移植主要集中在三個(gè)文件:OS_CPU.H、OS_CPU_C.C和OS_CPU_AS[40]。與處理器相關(guān)的代碼的編寫</p><p><b> 1、編譯器的選擇</b></p><p> 目前,適用于ARM處理器核的C編譯器有很多種,
88、比較常用的有SDT、ADS和GCC(對(duì)于開發(fā)linux比較簡(jiǎn)單,但只有ARM9才能跑linux,ARM上可以跑uclinux)。</p><p> SDT和ADS是ARM公司自己開發(fā)的,其中ADS是SDT的升級(jí)版,而且以后ARM公司不再支持SDT,所以最好采用ADS編譯程序和調(diào)試。</p><p> 2、OS_CPU_H的編寫</p><p> OS_CPU.
89、H主要包括了用#define定義的與處理器相關(guān)的常量,宏和類型定義。</p><p> 1)與編譯器相關(guān)的數(shù)據(jù)類型</p><p> μC/OS-Ⅱ不使用C語言中的short、int、long等與處理器類型有關(guān)的數(shù)據(jù)類型而代之以移植性強(qiáng)的整數(shù)數(shù)據(jù)類型,這樣既直觀又便于移植,不過這樣就成了必須移植的代碼。根據(jù)ADS編譯器的特性,在文件OS_CPU.H中這些數(shù)據(jù)類型的定義如下:</p
90、><p> typedef unsigned char BOOLEAN; /*布爾變量*/</p><p> typedef unsigned char INT8U; /*無符號(hào)8位整型變量*/</p><p> typedef signed char INT8S; /*有符號(hào)8位整型變量*/</p>
91、;<p> typedef unsigned short INTl6U; /*無符號(hào)16位整型變量*/</p><p> typedef signed short INTl6S; /*有符號(hào)1 6位整型變量*/</p><p> typedef unsigned int INT32U; /*無符號(hào)32位整型變量*/<
92、;/p><p> typedef signed int INT32S; /*有符號(hào)32位整型變量*/</p><p> typedef float FP32; /*單精度浮點(diǎn)數(shù)(32位長(zhǎng)度)*/</p><p> typedef double FP64; /*雙精度浮點(diǎn)數(shù)(
93、64位長(zhǎng)度)*/</p><p> typedef INT32U OS—STK; /*堆棧是32位寬度*/</p><p> 2)堆棧的生長(zhǎng)方式(OS_TASK_GROWTH)</p><p> 雖然ARM處理器對(duì)堆棧向上及向下的兩種增長(zhǎng)方式都給予了支持,但于由于編譯器ADS僅支持堆棧從上往下長(zhǎng),并且必須是滿遞減堆棧,所以在文件中用來定義
94、堆棧增長(zhǎng)方式的常量OS_TASK_GROWTH的值應(yīng)該為l。即</p><p> #define OS STK GROWTH 1 /*堆棧是從上往下長(zhǎng)的*/</p><p> 3)利用軟件中斷實(shí)現(xiàn)底層接口</p><p> 由于ARM9處理器核允許用戶任務(wù)使用兩種不同的處理器模式:用戶模式和系統(tǒng)模式,而且在不同的模式下應(yīng)用程序使用系統(tǒng)資源時(shí)是具有不同的訪問
95、控制權(quán)限的。</p><p> 于是怎樣在不同的ARM工作模式下調(diào)用μC/OS-Ⅱ底層接口函數(shù)不受訪問權(quán)限的限制,就是在移植時(shí)必須考慮的一個(gè)問題。解決這個(gè)問題的方法之一就是使用ARM9的軟中斷SWI。</p><p> μC/OS-Ⅱ中須用軟中斷實(shí)現(xiàn)的函數(shù)及其軟中斷功能號(hào)如下:</p><p> --swi(Ox00)void OS—TASK—SW(void)
96、;/*任務(wù)級(jí)任務(wù)切換函數(shù)*/</p><p> --swi(OxO1)void—0SStartHighRdy(Void);/*運(yùn)行優(yōu)先級(jí)最高的任務(wù)*/</p><p> --swi(0x02)void OS—ENTER—CRITICAL(void);/*關(guān)中斷*/</p><p> --swi(0x03)void OS—EXIT—CRITICAL(void);
97、/*開中斷*/</p><p> --swi(0x80)void ChangeT0SYSMode(void);/*任務(wù)切換到系統(tǒng)模式*/</p><p> --swi(0x81)void ChangeT0USRMode(void);/*任務(wù)切換到用戶模式*/</p><p> --swi(0x82)void Taskls ARM(INT8U prio);/*任
98、務(wù)代碼是ARM代碼*/</p><p> --swi(0x83)void Taskls THUMB(INT8U prio);/*任務(wù)代碼是THUMB代碼*/</p><p> 3、OS_CPU_C.C的編寫</p><p> μC/OS-Ⅱ給每個(gè)任務(wù)都分配一個(gè)單獨(dú)的任務(wù)堆棧,用來記錄當(dāng)前任務(wù)信息、被中斷時(shí)的狀態(tài)和臨時(shí)變量等等。本移植的堆棧結(jié)構(gòu)如圖3-3所示。&
99、lt;/p><p> 表3-1 任務(wù)堆棧結(jié)構(gòu)</p><p><b> 棧底</b></p><p> 任務(wù)環(huán)境開始
100、 </p><p><b> SP</b></p><p> OS_CPU_C.C包括任務(wù)堆棧初始化函數(shù)0STaskStklnit()、軟中斷異常處理程序SWI—Exception()及最高優(yōu)先級(jí)就緒任務(wù)函數(shù)0SStartHi曲Rdy()。</p><p> 1)任務(wù)堆棧初始化函數(shù)0STaskStkInit()&
101、lt;/p><p> 0STaskStklnit()是用戶建立任務(wù)時(shí)系統(tǒng)內(nèi)部自己調(diào)用的,作用是對(duì)用戶任務(wù)堆棧進(jìn)初始化。在ARM7TDMI體系結(jié)構(gòu)下,任務(wù)堆??臻g由高至低依次保存著PC、LR、R12、R1 l、……、R1、R0、CPSR、SPSR,如圖3.3所示。一旦用戶初始化了堆棧,0STaskStklnit()就返回堆棧指針?biāo)傅牡刂贰?STaskCreate()和0STaskCreateExt()獲得該地址并將
102、它保存到任務(wù)控制塊(OS—TCB)中。</p><p> 2)軟件中斷服務(wù)程序的C語言部分</p><p> 這部分程序采用一個(gè)switch語句把軟件功能號(hào)為0x02、0x03、0x80、0x81、0x82、0x83的六個(gè)功能塊OS_ENTER_CRITICAL().OS_EXIT_CRITICAL()、ChangeT0SYSModeO、ChangeToUSRMode0、Taskls
103、ARMO、TaskIs THUMB()組織到一個(gè)中斷服務(wù)程序SWI—Exception()中去,而軟中斷功能號(hào)為0x00和0x01的函數(shù)在OS CPU A.S中實(shí)現(xiàn)。</p><p> 以上所說的六個(gè)功能塊采用了在C程序中內(nèi)嵌匯編指令的方法來實(shí)現(xiàn)。在ADS的C語言程序中使用內(nèi)嵌的匯編指令很簡(jiǎn)單,只要使用關(guān)鍵字__asm(雙下劃線)來標(biāo)識(shí)一段匯編指令程序即可。例如關(guān)中斷OS_ENTER_CRITICAL()的實(shí)現(xiàn)
104、代碼為:</p><p><b> 一一asm</b></p><p><b> {</b></p><p> MRS R0,SPSR</p><p> ORR R0,R0, No In</p><p> MSR SPSR—c,R0</p><p
105、><b> }</b></p><p> 3)啟動(dòng)最高優(yōu)先級(jí)就緒任務(wù)函數(shù)0SStartHi曲Rdy()</p><p> 0SStartHi曲Rdy()是通過調(diào)用__0SStartHighRdy來啟動(dòng)最高優(yōu)先級(jí)就緒任務(wù)的,而__0SStartHi曲Rdy是用匯編語言來寫的,其代碼在OS_CPU_A.S中實(shí)現(xiàn)。</p><p> 4
106、、OS_CPU_A.S</p><p> 由于ADS要求匯編文件的擴(kuò)展名為.s而不是。asm3.2中的</p><p> OS_CPU_A.ASM變?yōu)镺S_CPU_A.S。</p><p> 因?yàn)檫@部分代碼是對(duì)處理器的寄存器進(jìn)行操作,所以必須用匯編語言來</p><p> 編寫。主要包括以下幾個(gè)函數(shù):</p><p
107、> 1)軟件中斷服務(wù)程序的匯編語言部分</p><p> ARM處理器要求中斷的功能號(hào)必須包括在SWI指令中,這樣應(yīng)用程序就可以在執(zhí)行SWI指令時(shí),通過讀取該調(diào)指令的相應(yīng)位段來獲得功能號(hào)。由于ARM處理器核兩個(gè)指令集的指令長(zhǎng)度不同,在不同的指令集中SWI指令的功能號(hào)所處的位段也不同,因此在這部分軟件中斷服務(wù)程序的匯編語言代碼中先判斷處理器所處的指令集狀態(tài),在不同的指令集狀態(tài)下由不同的指令獲得軟中斷功能號(hào)
108、,然后判斷所獲軟中斷功能號(hào)為O還是1。若為0則執(zhí)行任務(wù)切換函數(shù)0S_TASK_sw():若為1則執(zhí)行啟動(dòng)最高優(yōu)先級(jí)任務(wù)函數(shù)__0SStartHi曲Rdy。其他功能就由軟件中斷的C語言處理函數(shù)處理。</p><p> 2)任務(wù)級(jí)切換函數(shù)0S_TASK_sw0</p><p> 此函數(shù)是任務(wù)級(jí)的任務(wù)切換函數(shù),它是當(dāng)任務(wù)因?yàn)楸蛔枞鲃?dòng)請(qǐng)求CPU調(diào)度時(shí)被執(zhí)行,由于此時(shí)的任務(wù)切換都是在非異常模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)基于arm嵌入式系統(tǒng)的socket通信設(shè)計(jì)
- 基于嵌入式Linux的井下供風(fēng)供水分站系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于嵌入式的煤礦監(jiān)控分站的設(shè)計(jì).pdf
- 基于嵌入式的gis系統(tǒng)研究畢業(yè)設(shè)計(jì)
- 基于嵌入式的智能家居控制設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于arm的嵌入式智能家居遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 嵌入式畢業(yè)設(shè)計(jì)論文基于arm的嵌入式gui點(diǎn)菜系統(tǒng)
- 畢業(yè)設(shè)計(jì)論文---基于嵌入式系統(tǒng)的圖像采集系統(tǒng)
- 基于GPRS的嵌入式家庭智能系統(tǒng)設(shè)計(jì).pdf
- 基于ZigBee協(xié)議的煤礦井下嵌入式系統(tǒng)設(shè)計(jì).pdf
- 智能嵌入式系統(tǒng)設(shè)計(jì)研究.pdf
- 畢業(yè)設(shè)計(jì)--嵌入式糧情檢測(cè)系統(tǒng)的設(shè)計(jì)
- 基于嵌入式系統(tǒng)的智能通信接口控制器的研制.pdf
- 基于ARM嵌入式系統(tǒng)的Socket通信設(shè)計(jì).pdf
- 智能收費(fèi)系統(tǒng)的嵌入式設(shè)計(jì).pdf
- 基于嵌入式Linux的通信系統(tǒng)研究.pdf
- 基于嵌入式系統(tǒng)的智能電表研究與設(shè)計(jì).pdf
- 基于Internet的嵌入式通信系統(tǒng)的研究.pdf
- 基于嵌入式應(yīng)急通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于嵌入式系統(tǒng)的智能火災(zāi)監(jiān)控系統(tǒng)設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論