引言
RS 232串口通信是一種常用的通信方式,許多數(shù)字化設備、測量儀器都具有串行接口。這些設備可以方便地與PC、PLC等控制器連接進行數(shù)據(jù)交換,從而組成一個測試檢測/監(jiān)測系統(tǒng)。
目前安裝在江、河、湖等水體現(xiàn)場的不同種類的水環(huán)境監(jiān)測設備,通過采集水樣,周期性地生成一組數(shù)據(jù)通過串口向外傳送。如果在現(xiàn)場需配置一臺或多臺PC,既不經濟,又難以維護。本文介紹的基于單片機的多串口數(shù)據(jù)收發(fā)控制系統(tǒng),可以同時連接多臺不同類型的水質監(jiān)測設備,現(xiàn)場接收采集的數(shù)據(jù)并通過無線模塊向遠端控制中心傳遞,轉發(fā)傳送的距離約為3 000 m,遠遠大于直接的RS 232互連。多串口數(shù)據(jù)收發(fā)控制系統(tǒng)不同于多串口卡,可以脫離計算機獨立工作,是計算機串口擴展、延伸的一種全新方法。
用多串口數(shù)據(jù)收發(fā)控制系統(tǒng)取代計算機安置于監(jiān)測現(xiàn)場,將來自于不同設備的數(shù)據(jù)進行初步整合,再通過無線方式向遠離現(xiàn)場的中央控制室進行傳送,則監(jiān)測系統(tǒng)的可靠性、實時性、易維護性都大為增強。
1 水質監(jiān)測系統(tǒng)的構成
本文所提及的水質監(jiān)測系統(tǒng),由光譜分析儀、水毒性分析儀、生物狀態(tài)分析儀等組成,這些設備都具有RS 232接口,但是接口參數(shù)不盡一致,傳送的數(shù)據(jù)格式也差別極大(見表1)。
這些位于水體現(xiàn)場的測試設備,需要及時地將測量數(shù)據(jù)傳遞給遠端的中央控制室。
2 多串口數(shù)據(jù)收發(fā)控制系統(tǒng)
2.1 多串口數(shù)據(jù)收發(fā)控制系統(tǒng)工作原理
多串口數(shù)據(jù)收發(fā)控制系統(tǒng),以單片機STC10F04EX為控制核心,擴展出多個全雙工異步串行口(UART),用以同時連接多個外部串口設備。該系統(tǒng)既可獨立地與所連接的設備交換數(shù)據(jù),又能起到數(shù)據(jù)中繼的作用,將來自上位端的命令傳遞到指定的串口設備上,或將接收到的來自不同串口設備上的數(shù)據(jù)經過初步整理后發(fā)送到上位端。
由于要連接多個下位端執(zhí)行設備,但STC10F04EX的獨立UART只有一個,因此,必須對該單片機的UART進行擴展,才能連接多臺串口設備。經過擴展的各路UART不能同時工作,必須在I/O的配合下選擇對應通道分時工作。
被監(jiān)測的對象所發(fā)生的變化是個緩變過程,監(jiān)測系統(tǒng)中的各個分析儀器所要傳送的數(shù)據(jù)量有限,并且接收端大部分時間處于等待階段,控制程序在設計時已充分考慮到數(shù)據(jù)的銜接和每種設備的采樣和轉換周期。因此,分時連接不會造成數(shù)據(jù)丟失導致失準,可以滿足監(jiān)測要求。
圖1顯示了多串口收發(fā)控制系統(tǒng)的結構框圖以及與3個外部串口設備的連接。該系統(tǒng)既可以將接收到的數(shù)據(jù)通過無線方式對外發(fā)送,也可以用有線的方式直接傳遞給本地電腦。
2.2 多串口數(shù)據(jù)收發(fā)控制系統(tǒng)硬件組成
多串口數(shù)據(jù)收發(fā)控制系統(tǒng),采用型號STC10F04XE的單片機為控制核心,外加7279A鍵盤及數(shù)碼管驅動電路,TTL-RS232電平轉換電路MAX
232,4052雙4選1模擬開關,無線收發(fā)模塊等組成。
STC11F04XE的單片機,以8051為內核,并具有以下鮮明特點:抗干擾能力強,1T周期CPU,獨立波特率發(fā)生器,2個可切換串口,在系統(tǒng)可編程(ISP),片上擴展XRAM等。
單片機STC10F04EX的UART可在P1口的P1.6/P1.7(UART2)和P3口P3.0/P3.1(UART1)間切換,可以分時當2個串口使用,這為調試系統(tǒng)和擴展串口帶來了方便。由于該系列單片機支持在系統(tǒng)可編程(ISP),因此系統(tǒng)中的UART1通過電平轉換電路,直接連接到PC機的一個串口上,用于對單片機的程序下載和調試。單片機正常工作時,可將串口設置在UART2上。
采用雙4選1模擬開關4052,將單片機的UART2擴展為4路。其中,單片機端的RxD/TxD分別接到4052的公共端,擴展端再由MAX232電平變換連接到外部具有串口的測量設備上。STC10F04EX的2個I/O引腳P1.1,P1.0與4052的通道選擇線B、A分別相連,UART2的具體指向由這2條I/O選擇控制。擴展的串口只能分時工作,具體分配見表2。
由于連接的不同串口設備的通信參數(shù)不完全相同,STC10F04EX必須根據(jù)設備指向動態(tài)調整串口參數(shù)以適合外部串口設備。
顯示芯片7279A可以驅動8位共陰LED數(shù)碼管并可采集64個鍵盤位置信號。該系統(tǒng)通過數(shù)碼管顯示工作狀態(tài)(收發(fā),等待,時間,通道號,參數(shù)等);通過鍵盤不僅可以設置“多串口數(shù)據(jù)收發(fā)控制系統(tǒng)”自身參數(shù)和調節(jié)自身狀態(tài),還可修改/設置所連接的外部設備的傳送參數(shù)。CPU通過4個I/O引腳與7279A的4條控制線CS、DATA、CLK、KEY連接,就可驅動8位數(shù)碼管并對按鍵進行監(jiān)控。為了響應及時,采用中斷方式響應按鍵狀態(tài),因此將KEY連接到P3.2(int0)上。
無線收發(fā)模塊,嵌入高性能射頻芯片,采用高效循環(huán)交織糾檢錯編碼,發(fā)送距離可達3 000 m。模塊具有TTL電平的UART口,因此可以很方便地與單片機的一個擴展的UART連接。向無線收發(fā)模塊寫入和讀出數(shù)據(jù),與一般的串口操作基本一樣。無線收發(fā)模塊頻點、空中速率、本地串口速率、校驗方式等參數(shù)可以在線設置或通過廠家提供的程序進行設置。
系統(tǒng)中無線收發(fā)模塊本地串口通信參數(shù)設為(9 600,8,N,1),數(shù)據(jù)被調制在434 MHz進行發(fā)送和接收,空中速率9 600 b/s,發(fā)射功率100 mW。
該無線收發(fā)模塊,收到數(shù)據(jù)后通常延時幾十到幾百毫秒才發(fā)送,所帶緩存256 B。若本地串口速率大于等于空中速率,則存在數(shù)據(jù)流量問題,可能會出現(xiàn)數(shù)據(jù)溢出導致丟失現(xiàn)象。因此若傳送數(shù)據(jù)超過256 B,要進行數(shù)據(jù)分割,插入等待周期,采用分次發(fā)送的方式以避免數(shù)據(jù)丟失。本系統(tǒng)所連接的光譜儀數(shù)據(jù)量較大,因此單片機接收光譜儀數(shù)據(jù)后再經無線轉發(fā),要采用分段接收/轉發(fā)方式,每次的數(shù)據(jù)量要小于256 B,多次重復,直至全部數(shù)據(jù)。
3 軟件設計
3.1 有關寄存器的說明
程序運行時首先進行初始化設置,其中涉及到幾個比較特別的寄存器,其定義不同于其他51系列的單片機。
寄存器AUXR,地址8EH。關系到獨立波特率發(fā)生器,STC10F04EX既可以采用定時器1作為波特率發(fā)生器,又可以采用獨立波特率發(fā)生器以釋放定時器1,見表3說明。
寄存器AUXR1,地址A2H。其中的D7位關系到單片機內在的串口切換。例如:
3.2 數(shù)據(jù)存儲及轉發(fā)
STC10F04EX單片機,內部數(shù)據(jù)存儲器為256 B,片上擴展的外部數(shù)據(jù)存儲器為256 B,共計512 B,數(shù)據(jù)空間緊湊。程序運行中的一些變量需要占用一部分數(shù)據(jù)空間,因此只能開辟約220個字節(jié)作為緩存空間,暫存接收到的來自串口設備的數(shù)據(jù)。如果一次接收的數(shù)據(jù)量小于緩存空間,則不會導致數(shù)據(jù)溢出;如果外部設備需傳送的數(shù)據(jù)量較大,則必須與外部設備建立聯(lián)絡控制發(fā)送,以使每次傳來的數(shù)據(jù)小于系統(tǒng)緩存,避免數(shù)據(jù)丟失現(xiàn)象的發(fā)生。
所建立的水質監(jiān)測系統(tǒng)中,“光譜儀”給出的數(shù)據(jù)量較大,因此“多串口收發(fā)控制系統(tǒng)”分時連接到“光譜儀”時,采用命令應答方式控制光譜儀的數(shù)據(jù)發(fā)送,分批多次傳送。單片機將UART指向光譜儀,首先向光譜儀發(fā)送命令,指明數(shù)據(jù)來源和傳送的數(shù)據(jù)量(例如200個字節(jié));其次等待光譜儀的響應并將傳來的200個字節(jié)的數(shù)據(jù)暫存在所開辟的緩沖區(qū)中;然后再將UART切換至無線模塊通道,將單片機緩存中的數(shù)據(jù)寫入無線模塊轉發(fā)出去;重復進行上述步驟直至接收到光譜儀的全部數(shù)據(jù)。
水質監(jiān)測系統(tǒng)中的另外2種設備的數(shù)據(jù)量相對較小,可以一次性接收/轉發(fā)。
3.3 接收/轉發(fā)控制流程
根據(jù)設備的不同數(shù)據(jù)周期,以時間為線索,為相應的設備分配接收/發(fā)送時間(圖2),在所分配的時間里,單片機要進行UART通道切換:指向串口設備接收或發(fā)送數(shù)據(jù)、指向無線設備發(fā)送數(shù)據(jù)。
程序采用中斷方式處理定時、串口的數(shù)據(jù)接收/發(fā)送、鍵盤輸入等過程。以中斷方式運行,提高了程序的執(zhí)行效率。圖3為定時中斷服務程序流程圖。該水質監(jiān)測過程,就是循環(huán)掃描3個水監(jiān)測設備,獲取數(shù)據(jù)并進行無線轉發(fā)。
3.4 主要的程序功能模塊說明
串口驅動程序為分析判斷數(shù)據(jù)來源,并調用相應的函數(shù),完成對不同串口設備的數(shù)據(jù)接收和發(fā)送。將接收到的數(shù)據(jù)暫時保存于緩存中;將緩存中的數(shù)據(jù)進行轉發(fā);定時中斷程序為周期性地切換UART通道,分別連接到外部的3個串口設備上和無線發(fā)射模塊上。切換串口通道的同時,調整串口通信參數(shù),以適應不同的串口設備。觸發(fā)串口發(fā)送過程,將緩存中的數(shù)據(jù)寫入無線模塊轉發(fā);INT0中斷服務程序為及時響應鍵盤操作,然后調用相應的函數(shù),完成參數(shù)設置等控制任務;顯示程序為控制7279A.驅動LED數(shù)碼管,顯示系統(tǒng)狀態(tài)等信息。
4 結語
多串口數(shù)據(jù)收發(fā)控制系統(tǒng),已應用于水環(huán)境監(jiān)測的數(shù)據(jù)轉發(fā),工作穩(wěn)定,數(shù)據(jù)收發(fā)可靠。
本系統(tǒng)為采用一片單片機控制的單核心結構,與采用多核結構相比,盡管只能分時使用UART,但數(shù)據(jù)協(xié)調相對容易,并且在設計時已考慮了數(shù)據(jù)銜接問題,不會導致數(shù)據(jù)丟失現(xiàn)象的發(fā)生;與采用多串口卡的方案相比,本系統(tǒng)可以脫離計算機獨立工作,因此現(xiàn)場不需要一臺計算機參與數(shù)據(jù)接收;無線方式數(shù)據(jù)傳送,傳送距離相對更遠;系統(tǒng)占用資源少,維護成本降低。
該系統(tǒng)還可應用于其他的多串口數(shù)據(jù)收發(fā)場合。經過擴展,可連接的串口數(shù)目可以進一步擴大。
現(xiàn)代通信領域中,beam-forming技術有著非常廣泛的應用。在5G通信、相控陣雷達、衛(wèi)星通信等方面也越來越受到工程師們的重視。 波束成形(beamforming or spatial filtering)是傳感器陣列...
關鍵字: 芯片 收發(fā)系統(tǒng)好文章當然要分享啦~如果您喜歡這篇文章,請聯(lián)系后臺添加白名單,歡迎轉載喲~ 現(xiàn)代通信領域中,beam-forming技術有著非常廣泛的應用。在5G通信、相控陣雷達、衛(wèi)星通信等方面也越來越受到工程師們的重視。 波束成形(b...
關鍵字: 芯片 收發(fā)系統(tǒng)近幾年來,隨著后PC時代的來臨,嵌入式系統(tǒng)由于其簡潔、高效等特點,得到了飛速發(fā)展,嵌入式技術目前已將各種計算機技術多層次、多方面地交叉融合在一起。嵌入式系統(tǒng)加快了
關鍵字: cpld 中斷 多串口 嵌入式系統(tǒng) 驅動開發(fā)橫跨多重電子應用領域、全球領先的半導體供應商意法半導體(STMicroelectronics,簡稱ST)的STCOMET智能電表系統(tǒng)芯片(SoC)創(chuàng)下一個重要的里程碑,利用智能電網(wǎng)技術整合多種再
關鍵字: 意法半導體 COM STC 智能電表系統(tǒng)意法半導體(STMicroelectronics,簡稱ST)的STCOMET智能電表系統(tǒng)芯片(SoC)創(chuàng)下一個重要的里程碑,利用智能電網(wǎng)技術整合多種再生能源等不同發(fā)電設施輸送的電力,讓全球的電力公司為人們提供綠色環(huán)保的電...
關鍵字: 智能電網(wǎng) COM STC 智能電表系統(tǒng)