嵌入式多參數監護儀系統中一般包括多個獨立的硬件采集模塊,每個硬件采集模塊分別完成對人體的心電、呼吸率、體溫、血壓和血氧飽和度等生理參數的采集,并通過其串口接收HOST端的控制信息,定時向HOST端發送采集數據。
本嵌入式多參數監護儀HOST端使用AT91RM9200處理器,該處理器具有4個通用同步/異步接收/發送器(USART),其中一個是DEBUG串口,但它們都是分時復用的。為了使HOST端更好地與各采集模塊進行通信,必須解決其串口擴展的問題。
目前比較通用的串口擴展方案主要有2種。一種通過硬件實現,使用多串口ARM/MCU或專用串口擴展芯片,可供選擇的串口擴展芯片有TI公司開發的 16C55X系列串口擴展芯片和國騰公司開發的GM812X系列串口擴展芯片等。TI公司的16C55X系列芯片通過并行口擴展串行口,功能比較強大、通信速度高,但控制復雜,同時價格較高,主要應用于PC機串口擴展。另一種串口擴展方案通過軟件實現,但用軟件模擬串口存在缺點:(1)采樣次數低,一般只能做到2次/bit,這樣,數據的正確性就難以保證;(2)不能實現高波特率通信,軟件模擬串口一般不能實現高于4 800 b/s的波特率。
不管是采用硬件還是軟件方案,大多數串口擴展產品幾乎都是單向傳輸,不夠透明化。本文根據參與的多參數監護儀項目的需要,提出一種雙向透明的串口擴展設計方案,并通過了實驗驗證。
1硬件設計
1.1串口擴展模塊拓撲圖
在設計中,串口擴展模塊可以外接4個用戶設備,每個用戶設備都可以在與HOST端進行雙向數據傳輸,采用分時復用技術,即在任一時刻,最多僅有一個串口與HOST端連接,串口擴展模塊負責4個通道的切換/選擇。雙方通過硬件和軟件機制進行仲裁。如圖1所示。
1.2硬件設計方案
串口擴展模塊主要由2部分組成:單片機AT89C2051及模擬開關CD4052、雙4通道模擬開關。
串口擴展模塊拓撲結構圖如圖2所示,其中虛線框內為串口擴展模塊的主要部分。
2 通信協議設計
2.1數據由用戶設備發送到HOST端
由于各模塊是分時復用的,為了避免用戶設備之間發生競爭,需要AT89C2051對4個用戶設備通道進行仲裁,本文采用以下方案。
4個用戶設備各用一根I/O口線分別與AT89C2051的P1.0~P1.3引腳相連,同時還與一個4輸入或非門相連,將某根或某幾根I/O口線置高電平并經過該4輸入或非門來觸發中斷,通知AT89C2051有用戶設備請求向HOST終端發送數據,同時AT89C2051進行用戶設備號查詢。AT89C2051收到請求信號后,首先判斷 HOST端與其他用戶設備之間的數據發送是否結束,若結束,則根據仲裁機制通過與各用戶設備相連的P1.4~P1.7引腳置高給出應答響應信號,同時 AT89C2051根據中斷查詢到的用戶設備號對P3.4和P3.5引腳進行設置來控制CD4052模擬開關選通對應通道,用戶設備收到應答響應信號后就開始發送數據;若未結束,則屏蔽此次中斷,直到數據發送結束才開中斷。用戶設備數據發送結束時則將通過一個4輸入或非門來觸發中斷,通知AT89C2051此次數據發送結束。在響應數據發送請求時會涉及到多個用戶設備請求,從而需要AT89C2051進行仲裁。仲裁機制如下:心電和血氧模塊是50 ms定時發送數據,而血壓模塊需要HOST端發來啟動測量命令后才向HOST端發送血壓數據,因此需要將血壓模塊發送數據的請求設置為較高優先級,才能保證血壓數據正確及時地發送到HOST端,而心電和血氧模塊設置為低優先級輪流發送。
2.2數據由HOST端發送到用戶設備
為了使HOST端的數據能夠及時準確地發送到各個用戶設備,就需要和AT89C2051之間定義好通信協議。其協議如下。
AT89C2051始終監視HOST終端發出的信息,一旦收到HOST終端發出的串口選擇命令,如表1所示,立即對P3.4和P3.5引腳進行設置來控制 CD4052模擬開關選通對應通道并控制相應的LED燈以作指示。串口選擇后, HOST終端需要根據AT89C2051指令執行和模擬開關切換時間延遲一定時間后再開始向對應用戶設備發送數據/命令。HOST端數據發送結束則由接收端的用戶設備向AT89C2051發送中斷結束信號,其結束處理與數據由用戶設備發送到HOST端的結束處理相同。如果同時有用戶設備向 AT89C2051請求發送數據到HOST端,則優先響應HOST端的發送數據/命令請求,即HOST端的發送數據/命令請求的優先級最高。
本文在設計中將HOST端的TXD引腳連接到AT89C2051的RXD引腳,這樣就可以通過AT89C2051的串口接收中斷和HOST端通信, HOST端發送數據/命令時首先發送串口選擇命令字,其次再發送數據/命令去控制用戶設備的數據采集,例如增益大小、是否啟動血壓測量等命令。
3軟件設計
軟件設計分為主函數、串口中斷服務程序、外部中斷0和1服務程序4個部分,如圖3所示。
在很多場合需要進行串口擴展以滿足系統集成多個串口設備,擴展方法很多,各有優缺點。本文提出的用單片機AT89C2051為AT91RM9200擴展串口的方案是基于單片機價格低廉、體積小,完全可以替代一般的專用接口芯片,作為真正意義上的可編程接口,實現雙向通信,使串口擴展模塊變得透明。這種方案使用靈活,與一般接口芯片相比對外部用戶設備具有更好的適用性,經實驗驗證達到了設計目標。將單片機等同于普通接口芯片使用,是一種新思路,具有一定的啟迪作用和實際參考價值。
-
處理器
+關注
關注
68文章
19165瀏覽量
229125 -
單片機
+關注
關注
6032文章
44516瀏覽量
633013 -
嵌入式
+關注
關注
5068文章
19019瀏覽量
303275
發布評論請先 登錄
相關推薦
評論