當前位置:首頁 > 醫(yī)療電子 > 醫(yī)療電子
[導(dǎo)讀] 目前,我國各醫(yī)院普遍使用的心電圖機絕大多數(shù)是機電式的,即通過電極檢測心電信號,放大后直接記錄,存在著打印效率低、噪聲污染嚴重、心電波形失真等缺點。與之相比,數(shù)字式心電圖機通過軟件實現(xiàn)噪聲抑制和心電參數(shù)

 目前,我國各醫(yī)院普遍使用的心電圖機絕大多數(shù)是機電式的,即通過電極檢測心電信號,放大后直接記錄,存在著打印效率低、噪聲污染嚴重、心電波形失真等缺點。與之相比,數(shù)字式心電圖機通過軟件實現(xiàn)噪聲抑制和心電參數(shù)的提取,并采用數(shù)字式打印機輸出心電圖形,可為醫(yī)護人員提供更完美心電圖和更多診斷信息,必將成為市場的發(fā)展趨勢,有著更廣闊的應(yīng)用前景。由于數(shù)字心電圖機通過ADC采集的數(shù)據(jù)是離散的,要將其在圖紙上還原為原始的心電圖形,除了要將數(shù)據(jù)與圖紙上的離散點對應(yīng)起來,還要根據(jù)信號變化的趨勢,在這些點之間連線,使之成為連續(xù)的圖形。將心電數(shù)據(jù)尤其是多導(dǎo)聯(lián)心電數(shù)據(jù)同步、準確、快速打印出來是整個系統(tǒng)開發(fā)的難點和關(guān)鍵,而高效打印算法對數(shù)字心電圖機的開發(fā)無疑是很有意義的。

隨著電子技術(shù)的發(fā)展,打印機已經(jīng)廣泛應(yīng)用到各個領(lǐng)域,成為各種智能數(shù)字化儀器儀表的重要數(shù)據(jù)輸出手段。而其中熱敏打印機憑其體積小、重量輕、可靠性高、打印字符清晰、無噪聲、走紙均勻等獨特能而越來越受到青睞,更是成為小型醫(yī)療儀器如心電圖機的首先。

下面以筆者課題組開發(fā)的12導(dǎo)同步心電圖機為例,介紹以普通52單片機為主控芯片應(yīng)用串行熱敏打印機實現(xiàn)多種方式的心電圖形打印,并重點描述了12導(dǎo)聯(lián)同步打印方式的程序?qū)崿F(xiàn)方案。

1 系統(tǒng)硬件設(shè)計

系統(tǒng)配置了一個內(nèi)置式數(shù)字打印機,它主要由熱敏打印頭(W216-QS)和步進電機組成。W126-QS點陣式熱敏打印頭打印數(shù)據(jù)采用串行輸入,其內(nèi)部不僅包含有由C-MOS集成芯片構(gòu)成的1728位移位寄存器,還包含借助高密度厚膜工藝制成的加熱元件。這些加熱元件通過鎖存和切換晶體管驅(qū)動,可在熱敏打印紙上產(chǎn)生1728個點,對應(yīng)的打印寬度為216mm,分辨率為8dot/mm。熱敏打印頭所需的打印數(shù)據(jù)為串行數(shù)據(jù),數(shù)據(jù)傳輸遵循SPI口的通信協(xié)議。系統(tǒng)采用了口線模擬SPI的工作方式與打印頭通信,電路如圖1所示。

 

 

考慮到52單片機內(nèi)部令有256字節(jié)的內(nèi)部RAM,系統(tǒng)還外擴1片HM628128存儲12導(dǎo)心電數(shù)據(jù)和中間轉(zhuǎn)換結(jié)果。

2 系統(tǒng)軟件編寫

數(shù)字打印實現(xiàn)的兩個關(guān)鍵問題:①如何將心電數(shù)據(jù)轉(zhuǎn)換成打印數(shù)據(jù);②如果將數(shù)據(jù)輸出到數(shù)字打印機。通常采用的方法是轉(zhuǎn)換數(shù)據(jù)同時將其輸出到打印機打印。這樣節(jié)省了存儲器空間;缺點是程序?qū)崿F(xiàn)復(fù)雜,通用性差(不同打印方式的數(shù)據(jù)輸出程序不同),系統(tǒng)功能不易擴展,數(shù)據(jù)轉(zhuǎn)換和輸出都要考慮打印點位置,并且每輸出一點的數(shù)據(jù)都要調(diào)用一次程序,加大了系統(tǒng)開銷。系統(tǒng)軟件中沒有采有這種方式,而是在內(nèi)存中開辟216字節(jié)打印緩沖區(qū),將熱敏打印頭1728個點與216×8位數(shù)據(jù)相對應(yīng),每次將要打印的一線數(shù)據(jù)都轉(zhuǎn)換完再輸出。這樣只需在數(shù)據(jù)轉(zhuǎn)換時考慮打印位置和方式,輸出程序只需將216字節(jié)的數(shù)據(jù)按位輸出即可,并且每打印一線數(shù)據(jù)只需調(diào)用一次輸出子程序,字節(jié)了系統(tǒng)開銷。缺點是占用系統(tǒng)資源,這一點在12導(dǎo)同步打印表現(xiàn)得尤為明顯。

系統(tǒng)程序?qū)崿F(xiàn)三種打印方式:分兩次打印12導(dǎo)聯(lián)數(shù)據(jù),每次打印6導(dǎo)、12導(dǎo)同步打印、縱向打印(打印效果如圖2)。在每一種打印程序中實現(xiàn)模擬SPI口將打印數(shù)據(jù)送至數(shù)字打印機的子程序共用,不同處在于如何將心電數(shù)據(jù)轉(zhuǎn)換成打印數(shù)據(jù)。

 

 

2.1 I/O口線模擬SPI口

SPI(Serial Peripheral InteRFace)總線串口是由Motorola公司提出的一種同步串行外設(shè)接口,通過四根線進行通信:時鐘線(SPKCLK)、數(shù)據(jù)輸出線(SPIMISO)、數(shù)據(jù)輸出線(SPIMOSI)、片選線(CS),內(nèi)部通過SPIDAT寄存器完成串-并/并-串轉(zhuǎn)換。它主要工作在主從式系統(tǒng)中,一個主器件可以帶多個從器件,主器件通過片選線控制總線沖突,使同一時刻只有一個從器件與從器件交換數(shù)據(jù)。

系統(tǒng)應(yīng)用的串行熱陣式打印機數(shù)據(jù)傳輸采用SPI時序,但普通52單片機無SPI口,所以采用I/O口線模擬SPI時序。考慮到系統(tǒng)中MCU作為主器件總是發(fā)送數(shù)據(jù),而數(shù)字打印機作為唯一從器件又總是接收數(shù)據(jù),所以只需用口線模擬SPI口的時鐘線(SPIKCLK)、數(shù)據(jù)輸出線(SPIMOSI),程序模擬SPIDAT完成并-串轉(zhuǎn)換即可。如前所提到打印頭打印的數(shù)據(jù)點數(shù)為1728點,分辨率為8mm/mV,對應(yīng)216字節(jié)的數(shù)據(jù),為此從內(nèi)部RAM中分配出216字節(jié)的空間作為打印緩沖區(qū),程序從緩沖區(qū)依次讀數(shù)據(jù),在模擬時鐘線的控制下將并行數(shù)據(jù)轉(zhuǎn)換成的串行數(shù)據(jù)按位依次送至打印機的移位寄存器中,結(jié)束后送LATCH鎖存信號和打印頭加熱脈沖STROBE,從而在熱敏打印紙打印出一線心電圖形,驅(qū)動步進電機向前走紙即可以連續(xù)打印。SPI口模擬程序如下:

OUTPUT:

現(xiàn)場保護

LCALL INTRAM ;初始化內(nèi)部打印緩沖區(qū)

MOV R0,#Dat_Buff ;初始化R0為緩沖區(qū)末位地址

DAT_OUT:

MOV A,@R0 ;從緩沖區(qū)讀數(shù)據(jù)

MOV R7,#08H ;初始化R7控制并/串數(shù)據(jù)轉(zhuǎn)換

CONT_CHG:

RRC A ;對ACC循環(huán)右移實現(xiàn)并-串轉(zhuǎn)換

MOV P1.3,C 將串行數(shù)據(jù)送至打印機

SETB P1.1 ;模擬SPI時鐘

NOP

CLR P1.1

DJNZ R7,CONT_CHG ;判斷1字節(jié)數(shù)據(jù)是否轉(zhuǎn)換完

DEC R0 ;尋址下一字節(jié)

CJNE R0,#15H,DAT_OUT;判斷數(shù)據(jù)是否全部轉(zhuǎn)換完

CLR P1.2 ;產(chǎn)生數(shù)據(jù)鎖存信號

NOP

SETB P1.2

NOP

CLR P1.0 ;產(chǎn)生加熱脈沖

LCALL HEATDLY ;調(diào)用加熱延時程序

SETB P1.1

LCALL MOTOR_RUN ;步進電機走紙

恢復(fù)現(xiàn)場

RET

2.2 打印算法

數(shù)字打印機實質(zhì)上實現(xiàn)了數(shù)據(jù)與打印點的對應(yīng),也就是說8位心電數(shù)據(jù)數(shù)值范圍為0~255,對應(yīng)于熱敏打印紙上的256點,通過加熱敏單元使紙上某點變黑顯示數(shù)據(jù)的大小。這就需要將表征實際心電大小的數(shù)據(jù)(以下稱為原始數(shù)據(jù))轉(zhuǎn)換成能夠指示加熱點位置的數(shù)據(jù)(以下稱為位置數(shù)據(jù)),通過位置數(shù)據(jù)的控制將心電數(shù)據(jù)對應(yīng)的點依次打印出來,就可獲得心電圖。但是由于系統(tǒng)模數(shù)轉(zhuǎn)換器獲得的心電數(shù)據(jù)是離散的,如果僅將它們對應(yīng)的點打印出來,得到只是一些離散的點,要想獲得連續(xù)的心電圖形,需要將相鄰的離散點按照一定的算法將它們連接起來,對于縱向打印方式和橫向打印方式,離散點連線算法是不同的。限于篇幅,在下面介紹打印方式的實現(xiàn)中,僅對橫向12導(dǎo)同步打印和縱向打印進行詳細闡述,而對6導(dǎo)聯(lián)打印僅介紹其實現(xiàn)思想。

2.2.1 橫向6導(dǎo)聯(lián)打印

心電圖紙長度為216mm,為每一導(dǎo)聯(lián)心電信號分配32mm,對應(yīng)于打印緩沖區(qū)中連續(xù)的32字節(jié),打印數(shù)據(jù)轉(zhuǎn)換后的位置數(shù)據(jù)存儲于這32個字節(jié)中。12導(dǎo)聯(lián)的心電數(shù)據(jù)被分為兩大組,當一組打印完成再打印剩下的6導(dǎo)聯(lián)的數(shù)據(jù)。具體的實現(xiàn)過程可參考橫向12導(dǎo)聯(lián)打印方式。

2.2.2 橫向12導(dǎo)聯(lián)同步打印

在6導(dǎo)聯(lián)打印方式實現(xiàn)過程中,注意到在大多情況下一個完事心電波形中僅QRS波主峰較高可以點滿整個空間外,其他波段幅值都較小占用空間很少,而這些波段可以提供更多的信息,此外將12導(dǎo)聯(lián)分開打印,不利于醫(yī)生對比同一時刻不同導(dǎo)聯(lián)的心電波形。而采用12導(dǎo)聯(lián)同步打印,雖然會出現(xiàn)波形部分重疊,但是在一些心臟疾病診斷中影響不大,且可以得取更直觀的效果。

12導(dǎo)聯(lián)同步打印程序?qū)崿F(xiàn)的基本思想與6導(dǎo)聯(lián)同步打印相同,不同在于將12導(dǎo)聯(lián)的數(shù)據(jù)同時在216mm寬的打印紙上打印出來,不可避免地出現(xiàn)不同導(dǎo)聯(lián)心電圖形重疊的現(xiàn)象,對應(yīng)的內(nèi)存單元也會出現(xiàn)復(fù)用的情況。如果簡單地套用6導(dǎo)聯(lián)打印程序,那么前一導(dǎo)聯(lián)的數(shù)據(jù)會被相鄰導(dǎo)聯(lián)數(shù)據(jù)沖掉,從而使圖形無法正確顯示。圖3列出了為各個導(dǎo)聯(lián)分配的熱敏打印紙空間與緩沖內(nèi)存單元(這里假定緩存地址為0x1DH~0xEDH)。從圖3中可以看出除了I導(dǎo)聯(lián)前16mm空間和V6導(dǎo)聯(lián)的后16mm空間沒有被復(fù)用,打印紙的其它空間都是被兩個導(dǎo)聯(lián)共用。內(nèi)部RAM使用情況也與之類似。為此在外部RAM開辟一個內(nèi)部打印緩沖區(qū)的影像區(qū)(大小為216字節(jié),單元地址的低8位與內(nèi)存相應(yīng)單元相同,如內(nèi)部RAM 0x1DH單元與外部RAM 0xXX1DH相對應(yīng)),將12導(dǎo)聯(lián)分為兩組:一組(I,III,aVL,V1,V3,V5)仍然存儲于內(nèi)部存儲器,而另一組(II,aVF,V2,V4,V6)存儲于外部影像區(qū),在12導(dǎo)聯(lián)一線數(shù)據(jù)轉(zhuǎn)換完要打印時,將兩部分按照對應(yīng)單元相與即可。這樣做不但可以解決上述問題,而且節(jié)省了內(nèi)部資源、降低程序編寫的難度。

 

 

如前所述不同導(dǎo)聯(lián)所占的打印空間不同,所以,對于某導(dǎo)聯(lián)心電信號,先要確定其打印區(qū)間,然后再確定打印數(shù)據(jù)在該區(qū)間的相對位置。

假定某導(dǎo)聯(lián)所占打印空間的起始字節(jié)為第n個字節(jié),而要打印的心電數(shù)據(jù)為m,將m除以8,得商k,余數(shù)為1,則此心電數(shù)據(jù)對應(yīng)點對數(shù)(n-k)字節(jié)的第1位。即該心電數(shù)據(jù)對應(yīng)的位置數(shù)據(jù)為第(n-k)字節(jié)(該字節(jié)的1位置1,其它位清零)。因此,打印此心電數(shù)據(jù)時,該導(dǎo)聯(lián)所要傳送的32字節(jié)打印數(shù)據(jù)中只有第(n-k)字節(jié)的第1位為1,其他都為0。

與液晶顯示相類似,對于一個導(dǎo)聯(lián)的心電信號,要實現(xiàn)心電圖打印,必須將盯連兩個心電數(shù)據(jù)用線連接。即對于一條心電曲線,起始顯示數(shù)據(jù)點在起始列只顯示1點;從第二個數(shù)據(jù)點開始,要在下一列顯示上一數(shù)據(jù)點到此次數(shù)據(jù)點之間的線段。在熱敏打印紙上表現(xiàn)為將兩數(shù)據(jù)點之間的點都加熱,對應(yīng)于內(nèi)存則是將兩點之間的數(shù)據(jù)都置1。

對于—導(dǎo)聯(lián)的心電信號,先讀出第一個心電數(shù)據(jù),將其轉(zhuǎn)換成32字節(jié)位置數(shù)據(jù)直接打印。從第二個心電數(shù)據(jù)開始,除了要轉(zhuǎn)換成位置數(shù)據(jù)外,還要與上一個數(shù)據(jù)相比較,用大數(shù)對應(yīng)的位置數(shù)據(jù)減去小數(shù)對應(yīng)的,然后結(jié)果與大數(shù)的位置數(shù)據(jù)相加,結(jié)果即為此心電數(shù)據(jù)應(yīng)送打的32字節(jié)數(shù)據(jù),也即完成了與上一心電數(shù)據(jù)連線的操作。分析發(fā)現(xiàn)連線算法只影響相連兩個位置數(shù)據(jù)中非零字節(jié)之間的數(shù)據(jù),為了簡化計算,只需對這些字節(jié)進行減法操作,而不必計算所有的32個字節(jié)。對于加法,也只需將大數(shù)對應(yīng)位置數(shù)據(jù)中的非零字節(jié)進行加法,即進行單字節(jié)加法。

舉例說明,對于導(dǎo)聯(lián)V6心電信號,前一個數(shù)據(jù)37H,下一個數(shù)據(jù)為55H,導(dǎo)聯(lián)V6分配的打印區(qū)間為1DH~3DH,按照位置數(shù)據(jù)轉(zhuǎn)換算法,37H的位置數(shù)據(jù)為第37H字節(jié),該字節(jié)內(nèi)容為80H,其他字節(jié)都為00H;55H的位置數(shù)據(jù)為第33H字節(jié),該字節(jié)內(nèi)容為20H,其他字節(jié)為00H。由于37H〈55H,因此應(yīng)是心電數(shù)據(jù)55H的位置數(shù)據(jù)減去33H的位置數(shù)據(jù),計算如圖4所示。

 

 

2.3 縱向打印程序

縱向打印能夠?qū)崿F(xiàn)將12導(dǎo)聯(lián)數(shù)據(jù)無重疊同步顯示。這樣醫(yī)生可以參考比較同一時刻的各個波形的變化趨勢,為疾病的診斷提供方便。

熱敏打印紙寬度為216mm,分辨率為8dot/mm,這樣最多能夠打印1728點,將這些點與某一導(dǎo)聯(lián)連續(xù)的1728個心電數(shù)據(jù)相對應(yīng),也就是說導(dǎo)聯(lián)順序第n個數(shù)據(jù)對應(yīng)于一線圖形中的第n個點。與模向打印相比縱向打印仍然要解決將離散的點連接起來的問題;但與橫向順序打印方式,即打印點按時間順序打印相比,其難點在于需要將不同時刻同一幅值的多個點同時打印出來,即打印點按空間順序打印。

首先定義一個內(nèi)存單元存儲掃描值,使其從當前通道數(shù)據(jù)最大值變化到0,依次與通道的每一個數(shù)據(jù)進行比較:相同則對應(yīng)點被描記;小則不被描記;大則需要將當前心電數(shù)據(jù)相鄰的兩點與掃描值相比較,只要其中一個比掃描值大,則對應(yīng)點被描記,要描記的噗將其內(nèi)存對應(yīng)的數(shù)據(jù)位置1。

舉例說明,如果打印內(nèi)存緩沖區(qū)的首字節(jié)為n,大小為216字節(jié),而當前某一導(dǎo)聯(lián)順序第m個心電數(shù)據(jù)是v,而此時的掃描值為w:①v>w,則繼續(xù)比較第m+1個數(shù)據(jù);②v=w,則對應(yīng)點需要被描記;③v

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉