心電圖機USB借口的熱敏打印控制系統
摘 要:詳細介紹基于USB接口的心電圖機的熱敏打印控制系統,系統采用ARM作為控制芯片,使用USB接口進(jìn)行數據通信。熱敏打印機噪聲低、速度快、可靠性高、打印字符清晰。文中對熱敏打印所涉及到的關(guān)鍵技術(shù)作了詳細說(shuō)明,并對軟件設計作了介紹。
關(guān)鍵詞:ARM USB接口 心電圖 熱敏打印機
心電圖機是描記心臟組織活動(dòng)所產(chǎn)生的生物電信號以及現代醫學(xué)科學(xué)研究和l臨床診斷中使用非常廣泛的一種精密電子醫療儀器。由于它診斷可靠,操作簡(jiǎn)便,對病人無(wú)損傷,故在臨床上得到廣泛的應用,而作為心電圖檢測結果直觀(guān)的輸出方式和手段,心電圖機微型打印機是必不可少的。
目前,醫院中使用的多為傳統機械式心電打印機,存在著(zhù)打印效率低、噪聲污染嚴重、心電波形失真等缺點(diǎn)。近年來(lái)uSB技術(shù)有了飛速的發(fā)展,很多臺式打印機已經(jīng)應用了該技術(shù)。但是采用USB接口技術(shù)的心電圖機熱敏打印機卻很少。本系統就采用了USB接口與心電圖機相連,同時(shí)也可以與PC心電圖機進(jìn)行連接打印。
1 心電圖熱敏打印機的硬件設計
1.1 系統的總體結構
硬件系統由控制器、走紙電機、uSB接口、熱敏打印頭及其檢測和保護電路等組成,組成框圖如圖1所示。
1.2 ARM控制器的選擇
由于本系統要求打印最高速度達50 mm/s,所以對于處理器給打印頭傳送數據的速度就要求很高。一般熱敏打印頭數據通過(guò)串行傳送,所以通過(guò)SPI口傳送是最佳方式,而普通8位單片機在處理速度上就有缺陷,難以滿(mǎn)足整體要求,因此決定選用Atlnel公司的ARM7內核芯片AT91SAM7S64作為控制器。該芯片具有64 KB的片內高速Flash存儲器,16 KB的片內高速SRAM(可以在最高時(shí)鐘速度下進(jìn)行單時(shí)鐘周期訪(fǎng)問(wèn)操作);1個(gè)USB 2.O全速(12 Mbps)設備端口,片上收發(fā)器,328字節可編程的FIFO;主/從串行外設接口(SPI),8~16位可編程的數據長(cháng)度,4個(gè)片選線(xiàn)。本設計將用USB口與臺式或PC心電圖機通信,SPI口控制打印頭,同時(shí)具有大容量的數據存儲及高速數據處理能力。所以無(wú)論從集成度,還是性?xún)r(jià)比來(lái)看,都是理想的選擇。
1.3 熱敏打印頭的選擇及控制
熱敏打印技術(shù)最早使用在傳真機上,其基本原理是將打印機接收的數據轉換成點(diǎn)陣信號控制熱敏單元的加熱.把熱敏紙上熱敏涂層顯影。這種技術(shù)只能使用專(zhuān)用的熱敏紙。熱敏紙上涂有一層遇熱就會(huì )產(chǎn)生化學(xué)反應而變色的涂層,類(lèi)似于感光膠片,不過(guò)該涂層是遇熱后變色顯影。利用熱敏涂層的這種特性,研究出了熱敏打印技術(shù)。熱敏打印技術(shù)的關(guān)鍵在于加熱元件。熱敏打印機芯上有一排微小的半導體元件。這些元件排得很密,從290dpi~600dpi不等。這些元件在通過(guò)一定電流時(shí)會(huì )很快產(chǎn)生高溫,當熱敏紙的涂層遇到這些元件時(shí),在極短的時(shí)間內溫度會(huì )升高,涂層就會(huì )發(fā)生化學(xué)反應,顯出顏色。
熱敏打印機接收到打印數據后,將打印數據轉換為位圖數據,然后按照位圖數據的點(diǎn)控制打印機芯上的發(fā)熱元件通過(guò)電流,這樣就把打印數據變成打印紙上的打印內容了。
由于本設計要求最多能同時(shí)打印12導聯(lián)的心電波形,所以對打印頭的寬度和分辨率要求很高。經(jīng)過(guò)認真的性能比較,選用了C216型行式打印頭,其打印寬度可達216 mm,即1728點(diǎn)/行。熱敏打印頭的電路連接如圖2所示。
C216打印頭各信號線(xiàn)加2.2 kΩ上拉電阻,數據通過(guò)ARM的SPI口串行輸入;SPCK連接ARM芯片SPI口串行時(shí)鐘引腳,ARM最多有4個(gè)SPI外設片選信號腳,P_LATCHCSl連接其中的NPCSl腳,由于打印機只需單向接收數據,所以只連接MOSI腳。THERMISTOR接打印頭內置熱敏電阻,外加電路來(lái)檢測打印頭的溫度,從而可對打印頭作相應的保護。打印頭工作需要24 V直流電壓。由于每行1728點(diǎn),且電源電流有限,所以必須進(jìn)行打印頭的加熱功率控制。C216有4個(gè)加熱選通信號(STR()BEl~4),即1728個(gè)點(diǎn)可以分4次加熱,每次最多448個(gè)點(diǎn)。根據打印頭參數,如每個(gè)加熱點(diǎn)電阻為R=700 Ω時(shí),消耗功率為31.0 mA/點(diǎn);若所有點(diǎn)都加熱時(shí)需電流1728點(diǎn)31.O mA/點(diǎn)=53 568 mA。所以設計中要根據實(shí)際加熱點(diǎn)數通過(guò)軟件進(jìn)行一定的時(shí)序控制。
1.4 USB接口電路
AT9lSAM7S64芯片具有一個(gè)USB 2.O全速(12Mbps)設備端口,片上收發(fā)器,328字節可編程的F。IFO。這就給設計帶來(lái)很大的便捷性,也是采用本款ARM芯片較其他控制芯片的獨特優(yōu)勢之一。其外接電路如圖3所示。
AT9ISAM7S64的USB物理收發(fā)器集成在芯片中,USB器件有一條與高級中斷控制器(AIC)連接的中斷線(xiàn).處理USB器件中斷須在配置UDP前對AIC編程,可自動(dòng)檢測掛起與恢復,通過(guò)出現中斷來(lái)停止處理器。雙向差分信號DP與DM對于產(chǎn)品邊界有效,應用中會(huì )用到兩條I/O線(xiàn):一條檢查來(lái)自主機的VBUS是否仍然有效的USB_DET引腳,使用該入口通知自供電器件主機斷電(此時(shí),禁用板上上拉DP,以防止電流流入主機);另一條用來(lái)控制板上上拉DP即USB_DP_PUP引腳,當器件準備與主機通信時(shí),通過(guò)該控制線(xiàn)激活其DP上拉。
NRST引腳來(lái)自芯片的復位信號,AT9lSAM7S64的基于上電復位單元的復位控制器(RSTC)可以處理系統的所有復位,而無(wú)需其他器件,它可以給出上一次復位源的信息。復位控制器可獨立地或同時(shí)驅動(dòng)外部復位和外設及處理器復位,其掉電檢測功能可防止處理器進(jìn)入不可預測的狀態(tài)。
USB器件外設需要48 MHz時(shí)鐘。該時(shí)鐘由精度為士O.25%的PLL產(chǎn)生。因此,USB器件收到來(lái)自電源管理控制器(PMC)的兩個(gè)時(shí)鐘:主機時(shí)鐘MCK,用來(lái)驅動(dòng)外設用戶(hù)接口;UDPCK用來(lái)與總線(xiàn)USB信號連接。
1.5 走紙電路設計
打印機走紙控制采用雙極斬波驅動(dòng)的步進(jìn)電機來(lái)實(shí)現。本設計采用Allego公司的專(zhuān)用雙全橋PWM步進(jìn)電機驅動(dòng)器A2919SLB來(lái)驅動(dòng)電機,如圖4所示。驅動(dòng)器輸出雙路可直接驅動(dòng)步進(jìn)電機,PHASEl和PHASE2分別由.ARM控制器輸出相應脈沖來(lái)控制輸出脈沖頻率,從而得到理想的速度。走紙電機驅動(dòng)電路如圖4所示。
A2919SLB驅動(dòng)電機工作電壓為+24 V,芯片參考供電電壓為VOC,驅動(dòng)芯片的電機驅動(dòng)電流取決于參考電壓VREF和參考電阻Rs,以及Io和fI高低電平的組合,其計算方法如表1所列。
該芯片的控制簡(jiǎn)單方便,實(shí)際應用中可以根據需要調節輸出高低電平搭配,以達到細分的效果。本設計采用了全角控制,VREF采用+5 V直流電壓,Rs取0.5 n的高精度電阻,I0和Il采用第2種電平組合方式,輸出電流為67%,ITRlP,完全可以滿(mǎn)足設計需要。
1.6 打印頭保護和頭溫度測量電路
對打印頭的保護是打印機控制系統好壞的重要標志。由于行式熱敏打印機對發(fā)熱元件的加熱時(shí)間都是ms級的,如果對發(fā)熱元件連續加熱超過(guò)l s,將會(huì )燒壞打印頭,因此對打印頭的保護必須及時(shí)、可靠。從行式打印頭電路連接圖可以看出,要使發(fā)熱元件加熱,除寄存器中數據點(diǎn)為高外,還必須將頭電壓VH一24V供電電源打開(kāi)。只要任一條件不滿(mǎn)足,就不可能給打印頭加熱,也就不會(huì )燒壞打印頭.所以對打印頭電壓設計了一個(gè)電源保護電路。
如果打印過(guò)程中打印頭過(guò)熱,就必須停止打印,否則會(huì )燒壞打印頭。打印頭內置熱敏電阻由THERMIST()R連接到外部檢測電路,經(jīng)過(guò)LM339M比較器,一旦溫度超過(guò)極限溫度,就通過(guò)OVER_HOT腳發(fā)出低電平給主控芯片.從而可以及時(shí)采取相應的保護措施,如圖5所示。
打印過(guò)程中如果出現缺紙和開(kāi)蓋的情況,同樣需要停止打印,否則會(huì )出現不可預測的結果。J4連接光敏對檢測缺紙電路,J8連接一個(gè)開(kāi)關(guān)電路。當缺紙和開(kāi)蓋狀況出現時(shí),電路將立即通過(guò)PAPER_SHORT腳和COVER_OPEN腳向ARM控制器發(fā)出低電平信號,控制器則立即停止打印頭和電機,停止任何打印操作,以免損壞打印頭。
2 心電圖熱敏打印機的軟件設計
軟件的主要功能是接收來(lái)自主機(心電圖機)通過(guò)USB口發(fā)來(lái)的數據,然后判斷數據的內容,根據指定的通信協(xié)議進(jìn)行處理。數據包括三種情況:控制命令、心電圖數據和字符。對于心電圖數據,首先要判斷是幾導打印(本設計中分為同時(shí)打印1、3、6和12導四種情況),然后將接收到的數據映射成點(diǎn),通過(guò)SPI口,以串行方式送至打印頭的緩沖區進(jìn)行打??;如果有字符,則從外擴的DATAFLASH中取出各字符的字形碼,并進(jìn)行轉換.然后送往打印頭的緩沖區進(jìn)行打??;如果數據是控制命令,則轉到相應控制命令的執行程序。
在對打印頭傳送數據時(shí),使用了ARM控制器的SPI口,因ARM只需向打印頭單向傳送數據,僅是主從式工作方式,所以只要通過(guò)3根線(xiàn)――時(shí)鐘線(xiàn)(SPKCLK)、數據輸出線(xiàn)(SPIMOSI)、片選線(xiàn)(CS)進(jìn)行通信,內部通過(guò)SPIDAT寄存器完成轉換。打印機有3種打印速度可供用戶(hù)選用:50 mm/s、25 mm/s和12.5 mm/s。當采用最高的50 mm/s速度打印時(shí),必須保證電機走紙內打印頭數據已經(jīng)傳送到打印頭。普通8位單片機此時(shí)就不能滿(mǎn)足要求,這就是本設計采用ARM的原因之一。圖6是打印頭的加熱控制時(shí)序圖。
軟件設計中的另一個(gè)關(guān)鍵技術(shù)就是將打印數據映射成點(diǎn),再打印到紙上。映射的點(diǎn)必須和打印紙上的點(diǎn)一一對應,所以合理分配每導在打印紙上的空間就十分重要,既要分配充分,又不能相互重疊。打印紙的寬度是216ms,與1728個(gè)點(diǎn)相對應,12導可以成行排列同時(shí)打印。
圖7是標準心電波形圖
由圖7可以看出,心電波形圖絕大部分都在基線(xiàn)的一邊,故相鄰的導聯(lián)波形在一側可以共用部分空間,而不至于導聯(lián)波形重疊。程序框圖和程序在此省略。
結語(yǔ)
本設計充分利用了ARM芯片AT91sAM7S64的資源,完成了采用USB借口技術(shù)的熱敏打印機的開(kāi)發(fā),并對打印機頭作了充分的保護。通過(guò)采用響應的算法實(shí)現了心電圖的高達12導聯(lián)的多導同時(shí)打印,在實(shí)際應用中效果良好。
評論