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