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