基于LM3S101的數(shù)字采控器設(shè)計(jì)
0 引言
??? 隨著科學(xué)技術(shù)的發(fā)展和社會(huì)的進(jìn)步,現(xiàn)場(chǎng)監(jiān)控系統(tǒng)已越來(lái)越廣泛地應(yīng)用于金融、交通、商業(yè)、工農(nóng)業(yè)生產(chǎn)等領(lǐng)域。數(shù)字采控器作為現(xiàn)場(chǎng)監(jiān)控系統(tǒng)中數(shù)字量采集和控制的主要設(shè)備,其性能對(duì)整個(gè)系統(tǒng)的現(xiàn)場(chǎng)監(jiān)控工作的穩(wěn)定性具有十分重要的作用。因此,研制結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定、可靠性高且成本低廉的新型數(shù)字采控器具有十分重要的意義。
??? 本文介紹了一種以L(fǎng)uminary公司新推出的、采用ARM Cortex-M3內(nèi)核的LM3S101微控制器為控制核心,并采用RS-485通信專(zhuān)用器件SP3485進(jìn)行通信接口的設(shè)計(jì),由串行輸入/并行輸出8位移位寄存器74HC164和并行輸入/串行輸出8位移位寄存器74HC165來(lái)進(jìn)行并行數(shù)字輸入/輸出擴(kuò)展的數(shù)字采控器的設(shè)計(jì)方法。該數(shù)字采控器具有性?xún)r(jià)比高、設(shè)計(jì)新穎、實(shí)用、抗干擾能力強(qiáng)等特點(diǎn),可廣泛應(yīng)用于各種現(xiàn)場(chǎng)監(jiān)控系統(tǒng),而且經(jīng)改造后,還可應(yīng)用于遠(yuǎn)程控制系統(tǒng)。
1 系統(tǒng)整體工作原理
??? 本數(shù)字采控器硬件以L(fǎng)M3S101 ARM微控制器為控制核心,主要實(shí)現(xiàn)RS485通信、波特率設(shè)置、本機(jī)地址設(shè)置、8路數(shù)字量采集和8路數(shù)字量控制等功能。其系統(tǒng)的硬件組成如圖1所示。
??? 數(shù)字采控器的主要功能是根據(jù)遠(yuǎn)程監(jiān)控中心發(fā)出的現(xiàn)場(chǎng)監(jiān)控?cái)?shù)字量傳感器(如:玻璃破碎監(jiān)測(cè)、遠(yuǎn)紅外監(jiān)測(cè)等)狀態(tài)監(jiān)控命令來(lái)進(jìn)行8路傳感器數(shù)字量的狀態(tài)采集,然后將采集到的數(shù)字量結(jié)果發(fā)送給監(jiān)控中心;同時(shí)接收來(lái)自遠(yuǎn)程監(jiān)控中心發(fā)送的數(shù)字量開(kāi)關(guān)控制命令,進(jìn)行數(shù)字量輸出控制,以控制監(jiān)控現(xiàn)場(chǎng)的監(jiān)控輔助設(shè)備,如:燈光、報(bào)警器等。
2 硬件結(jié)構(gòu)
??? 本系統(tǒng)主要由LM3S101 ARM微控制器主控系統(tǒng)、RS485通信接口、通信波特率和本機(jī)地址設(shè)置電路、8路數(shù)字量輸入電路、8路數(shù)字量輸出電路等組成。
2.1 LM3S101主控系統(tǒng)
??? LM3S101 ARM微控制器是Luminary公司推出的一款結(jié)構(gòu)簡(jiǎn)單、性能出眾且?guī)в蠥RM Codex-M3處理器內(nèi)核的32位微控制器。Codex-M3處理器是首個(gè)基于ARMv7M架構(gòu),主要針對(duì)汽車(chē)車(chē)身系統(tǒng)、工業(yè)控制系統(tǒng)以及無(wú)線(xiàn)網(wǎng)絡(luò)等對(duì)成本和功耗極端敏感的嵌入式應(yīng)用領(lǐng)域,是以實(shí)現(xiàn)高系統(tǒng)性能為目的而專(zhuān)門(mén)設(shè)計(jì)的ARM內(nèi)核。
??? LM3S101的最大特點(diǎn)是成本低,性?xún)r(jià)比高。通常在大多數(shù)人腦海中的印象是32位微控制器價(jià)格較高,因此在設(shè)計(jì)低成本嵌入式應(yīng)用系統(tǒng)時(shí),常會(huì)自覺(jué)或不自覺(jué)地首選8/16位的微控制器,而LM3S101微控制器芯片的面世徹底改變了這種狀況。因?yàn)樗匿N(xiāo)售價(jià)格在1美元以下,這就使得在構(gòu)建同等性能價(jià)格比的應(yīng)用系統(tǒng)時(shí),選用32位的LM3S101芯片比選用其它8/16位芯片的成本更低。
?LM3S101內(nèi)部集成了8 KB單周期的FlashROM和2KB的單周期SRAM,并含有兩個(gè)32位定時(shí)器,一個(gè)同步串行接口(SSI),一個(gè)看門(mén)狗定時(shí)器,一個(gè)UART,兩個(gè)模擬比較器以及18個(gè)GPIO (通用輸入/輸出)等。芯片采用6 MHz的晶振,并可通過(guò)片內(nèi)軟件PLL來(lái)將工作時(shí)鐘頻率設(shè)置為20 MHz。
??? 采用LM3S101可以極大地簡(jiǎn)化系統(tǒng)電路、提高系統(tǒng)的穩(wěn)定性和可靠性。
2.2 RS-485通信接口
??? RS-485總線(xiàn)是目前現(xiàn)場(chǎng)監(jiān)控系統(tǒng)中最為常見(jiàn)的通信接口,這是因?yàn)镽S-485總線(xiàn)允許的最大通信距離可達(dá)1200多米,每條總線(xiàn)上允許連接的設(shè)備最多可達(dá)32臺(tái),經(jīng)過(guò)適當(dāng)?shù)拇跀U(kuò)展,完全能夠滿(mǎn)足現(xiàn)場(chǎng)監(jiān)控系統(tǒng)對(duì)通信距離和設(shè)備數(shù)量的要求。由于LM3S101的電源為+3.3 V,因此,RS-485通信接口也采用供電電壓為+3.3 V的SP3485E專(zhuān)用芯片來(lái)進(jìn)行通信接口設(shè)計(jì),其接口電路原理圖如圖2所示。圖中的SMD010是電流為100 mA的自恢復(fù)保險(xiǎn)絲,當(dāng)通信網(wǎng)絡(luò)出現(xiàn)故障,A、B端的電流大于100 mA時(shí),自恢復(fù)保險(xiǎn)絲SMD010的電阻會(huì)變大,從而保護(hù)SP3485芯片不被損壞。
2.3 數(shù)字量輸入電路
??? LM3S101的GPIO引腳雖然有18個(gè),但絕大多數(shù)引腳除具有通用輸入/輸出功能外,還具有其它系統(tǒng)的外設(shè)功能。其中五個(gè)引腳可作為JTAG接口進(jìn)行系統(tǒng)調(diào)試和編程,三個(gè)引腳可作為RS-485通信和控制使用。顯然,使用LM3S101的GPIO引腳來(lái)直接作為8路數(shù)字量輸入、8路數(shù)字量控制輸出和通信波特率以及本機(jī)地址設(shè)置是不可能的。因此,8路數(shù)字量輸入電路應(yīng)采用并行輸入、串行輸出的8位移位寄存器74HC165和光電耦合器TLP521-4來(lái)進(jìn)行設(shè)計(jì),其數(shù)字量輸入電路原理圖如圖3所示。
??? 當(dāng)需要采集監(jiān)控現(xiàn)場(chǎng)各數(shù)字量監(jiān)測(cè)傳感器狀態(tài)時(shí),只需進(jìn)行并行輸入、串行輸出的8位移位寄存器的數(shù)字量讀取,然后,對(duì)數(shù)據(jù)進(jìn)行封裝后發(fā)送給遠(yuǎn)程監(jiān)控中心即可。
2.4 通信波特率和本機(jī)地址設(shè)置電路
??? 通信波特率和本機(jī)地址設(shè)置電路屬于數(shù)字量輸入電路,因此,可以由一塊74HC165來(lái)完成。只是輸入是由撥碼開(kāi)關(guān)設(shè)置。其中兩組開(kāi)關(guān)用于通信波特率設(shè)置,可設(shè)置1200 b/s、2400 b/s、4800 b/s和9600 b/s四種通信波特率;其他六組開(kāi)關(guān)用于本機(jī)地址設(shè)置,可設(shè)置成64個(gè)設(shè)備地址:0~63。
??? 構(gòu)成通信波特率和本機(jī)地址設(shè)置電路的74HC165與8路數(shù)字量輸入電路中的74HC165串聯(lián),可組成一個(gè)并行輸入、串行輸出的16位移位寄存器。系統(tǒng)初始化前,只需進(jìn)行16位移位寄存器的數(shù)字量讀取,然后,再取低8位二進(jìn)制數(shù)作為通信波特率和本機(jī)地址設(shè)置值,取低六位為本機(jī)地址、高兩位為通信波特率設(shè)置值。
2.5 數(shù)字量控制輸出電路
??? 8路數(shù)字量控制輸出電路可由串行輸入、并行輸出的8位移位寄存器74HC164,8位鎖存器74L5373.8路達(dá)林頓管陣列集成電路ULN2803和8個(gè)線(xiàn)圈額定電壓為12 V、負(fù)載能力為10 A的交流250 V繼電器組成。其8路數(shù)字量控制輸出電路如圖4所示。當(dāng)數(shù)字采控器接收到遠(yuǎn)程監(jiān)控中心發(fā)送的數(shù)字量輸出控制命令后,可先將74HC164的各位狀態(tài)由8D鎖存器74LS373鎖存,然后向串行輸入/并行輸出的8位移位寄存器74HC164依次輸出8位二進(jìn)制控制信息。最后,在移位輸出前及完成8位二進(jìn)制控制數(shù)據(jù)后,并在74HC164輸出的狀態(tài)穩(wěn)定下來(lái)后,再將新的二進(jìn)制控制信息輸出。
?
3 系統(tǒng)軟件設(shè)計(jì)
??? 可支持LM3S101的集成開(kāi)發(fā)環(huán)境有KeilμVi-sion3 for ARM、 IAR Embedded Workbench forARM和Rowley Crosswork等。針對(duì)不同的集成開(kāi)發(fā)環(huán)境,Luminarv公司提供有配套完善且豐富的驅(qū)動(dòng)程序庫(kù)Stellaiis Driver Library,并在程序驅(qū)動(dòng)庫(kù)中封裝了對(duì)底層寄存器的直接操作。應(yīng)用開(kāi)發(fā)中還可以直接調(diào)用該庫(kù)中的函數(shù),以完成絕大部分的程序設(shè)計(jì)。而不必關(guān)心底層的操作細(xì)節(jié),這為系統(tǒng)軟件程序的設(shè)計(jì)提供了極大的方便。
??? LM3S101中的通用異步收發(fā)器(UART)具有獨(dú)立的發(fā)送FIFO和接收FIFO。這一特性使得LM3S101在串行通信中不必逐字節(jié)地發(fā)送和接收數(shù)據(jù),故可以使其全力以赴地去作別的事情。本數(shù)字采控器的軟件由系統(tǒng)主程序和串口通信主程序兩大部分組成,這兩部分的程序流程圖如圖5所示。
4 結(jié)束語(yǔ)
??? 本文介紹的基于LM3S101的數(shù)字采控器硬件采用Luminarv公司針對(duì)工業(yè)應(yīng)用方案而設(shè)計(jì)的高性?xún)r(jià)比32位ARM微控制器為控制核心。由SP3232E實(shí)現(xiàn)RS-485通信接口、并行輸入/串行輸出移位寄存器和串行輸入/并行輸出移位寄存器設(shè)置、以及8位并行輸入和8路并行輸出數(shù)字量接口電路的設(shè)計(jì)。系統(tǒng)軟件按照模塊化程序設(shè)計(jì)思想,程序編寫(xiě)由C語(yǔ)言實(shí)現(xiàn)。而采用Luminarv公司開(kāi)發(fā)的Stellaris Driver Library程序庫(kù),可以直接調(diào)用該庫(kù)中的函數(shù)驅(qū)動(dòng)程序庫(kù),編程靈活,修改方便快捷。本系統(tǒng)經(jīng)現(xiàn)場(chǎng)測(cè)試表明:基于LM3S101的數(shù)字采控器在某安防監(jiān)控系統(tǒng)中運(yùn)行可靠,工作穩(wěn)定。
評(píng)論