專利名稱:植入式醫(yī)療設(shè)備的軟件升級(jí)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及醫(yī)療器械領(lǐng)域,更具體地說,涉及植入式醫(yī)療設(shè)備的軟件升級(jí)方法。
背景技術(shù):
植入式醫(yī)療設(shè)備用于一些特殊病癥的輔助性治療已經(jīng)越來越得到廣泛的應(yīng)用,植入式醫(yī)療設(shè)備包括兩部分體外控制設(shè)備和體內(nèi)設(shè)備,體內(nèi)設(shè)備例如包括有植入式神經(jīng)刺激器(如胃電刺激器、腦深部刺激器、脊髓刺激器等)、心臟起搏器、植入式藥物泵、植入式除顫器等等。為了達(dá)到全天候監(jiān)控的目的,需要對(duì)植入體內(nèi)的刺激器進(jìn)行控制,實(shí)施無線遙控。對(duì)于體內(nèi)設(shè)備而言,一旦植入人體內(nèi),體內(nèi)設(shè)備內(nèi)的硬件電路及固化在程序存儲(chǔ)器內(nèi)的控制軟件就無法進(jìn)行變更和更新,只能通過手術(shù)更換。硬件電路由于比較成熟,更改的可能性很小或者短期內(nèi)不會(huì)更改。為了適應(yīng)醫(yī)學(xué)的飛速發(fā)展,以及人們對(duì)疾病機(jī)理的認(rèn)識(shí)不斷進(jìn)步,新的治療模式和信號(hào)處理方法不斷出現(xiàn),控制軟件的升級(jí)成為必然。另外,隨著電池技術(shù)的不斷進(jìn)步以及充電技術(shù)的應(yīng)用,體內(nèi)設(shè)備的壽命越來越長(zhǎng),使得控制軟件的升級(jí)有著更為廣闊的前景?,F(xiàn)有體內(nèi)設(shè)備的在線軟件升級(jí)一般都是使用體外控制設(shè)備將軟件程序數(shù)據(jù)發(fā)送至體內(nèi)設(shè)備來進(jìn)行的,通過駐留在體內(nèi)設(shè)備內(nèi)的終端執(zhí)行程序(軟件升級(jí)時(shí)不變化)來更新軟件的控制功能模塊。但是現(xiàn)有的軟件更新方法的安全性和可靠性較低,無法滿足體內(nèi)設(shè)備對(duì)安全性和可靠性的需求。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述無法更新全部軟件以及安全性和可靠性較低的缺陷,提供植入式醫(yī)療設(shè)備的軟件升級(jí)方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種植入式醫(yī)療設(shè)備的軟件升級(jí)方法,用于體外控制設(shè)備為體內(nèi)設(shè)備進(jìn)行軟件升級(jí),包括步驟
51、體外控制設(shè)備獲取升級(jí)版本的軟件程序數(shù)據(jù),并向體內(nèi)設(shè)備發(fā)送軟件升級(jí)請(qǐng)求指令,所述軟件升級(jí)請(qǐng)求指令附加有其對(duì)應(yīng)的CRC校驗(yàn)值,且包括對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí);
52、體外控制設(shè)備檢測(cè)是否接收到所述體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),并依據(jù)檢測(cè)結(jié)果向體內(nèi)設(shè)備發(fā)送所述升級(jí)版本的軟件程序數(shù)據(jù);
53、體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否接收成功,若是,則進(jìn)入步驟S4;若否, 則重新發(fā)送所述軟件程序數(shù)據(jù);
54、體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否發(fā)送完畢,并依據(jù)檢測(cè)結(jié)果發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令。在本發(fā)明所述的軟件升級(jí)方法中,步驟S2具體包括
S21、體外控制設(shè)備檢測(cè)是否接收到體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),若接收到所述準(zhǔn)備完畢響應(yīng),則判斷體內(nèi)設(shè)備的軟件的當(dāng)前版本是否需要升級(jí),若需要升級(jí),則進(jìn)入步驟S22 ; 若未接收到所述準(zhǔn)備完畢響應(yīng),則進(jìn)入步驟S23 ;522、體外控制設(shè)備依據(jù)升級(jí)版本的軟件程序數(shù)據(jù)的長(zhǎng)度將其劃分為多個(gè)數(shù)據(jù)段,每一數(shù)據(jù)段附加有其對(duì)應(yīng)的CRC校驗(yàn)值,依次發(fā)送附加有CRC校驗(yàn)值的所述多個(gè)數(shù)據(jù)段;
523、體外控制設(shè)備判斷是否超過第一預(yù)設(shè)重發(fā)次數(shù),若否,則返回步驟Sl重新發(fā)送所述軟件升級(jí)請(qǐng)求指令。在本發(fā)明所述的軟件升級(jí)方法中,在步驟Sl之前還包括
SO、設(shè)置磁鐵于體內(nèi)設(shè)備對(duì)應(yīng)的體外位置,所述磁鐵用于吸合位于體內(nèi)設(shè)備內(nèi)的干簧管,并至少持續(xù)預(yù)設(shè)時(shí)間。在本發(fā)明所述的軟件升級(jí)方法中,步驟S3中,重新發(fā)送所述軟件程序數(shù)據(jù)具體包括體外控制設(shè)備判斷是否超過第二預(yù)設(shè)重發(fā)次數(shù),若否,則重新發(fā)送所述軟件程序數(shù)據(jù)。在本發(fā)明所述的軟件升級(jí)方法中,步驟S4具體包括
541、體外控制設(shè)備檢測(cè)所述多個(gè)數(shù)據(jù)段是否發(fā)送完畢,若是,則進(jìn)入步驟S42;若否, 則繼續(xù)發(fā)送其余的數(shù)據(jù)段;
542、體外控制設(shè)備發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令; 在本發(fā)明所述的軟件升級(jí)方法中,還包括步驟
55、體外控制設(shè)備檢測(cè)所述結(jié)束指令是否接收成功,若否,則進(jìn)入步驟S6;
56、體外控制設(shè)備判斷是否超過第三預(yù)設(shè)重發(fā)次數(shù),若否,則重新發(fā)送所述結(jié)束指令。本發(fā)明還構(gòu)造一種植入式醫(yī)療設(shè)備的軟件升級(jí)方法,用于體內(nèi)設(shè)備通過體外控制設(shè)備來進(jìn)行升級(jí),包括步驟
A、體內(nèi)設(shè)備檢測(cè)是否接收到體外控制設(shè)備所發(fā)送的軟件升級(jí)請(qǐng)求指令,并在接收到所述軟件升級(jí)請(qǐng)求指令時(shí),核對(duì)所述軟件升級(jí)請(qǐng)求指令的CRC校驗(yàn)值以及對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí)是否正確,若正確,則進(jìn)入步驟B ;
B、體內(nèi)設(shè)備擦除用于存放升級(jí)版本的軟件程序數(shù)據(jù)的第一存儲(chǔ)區(qū),并發(fā)送準(zhǔn)備完畢響應(yīng)至體外控制設(shè)備;其中,與所述升級(jí)版本的軟件程序數(shù)據(jù)對(duì)應(yīng)的舊版本的軟件程序數(shù)據(jù)存放在第三存儲(chǔ)區(qū)中;
C、體內(nèi)設(shè)備接收來自體外控制設(shè)備發(fā)送的所述升級(jí)版本的軟件程序數(shù)據(jù),并在校驗(yàn)正確后將其寫入所述第一存儲(chǔ)區(qū)并發(fā)送數(shù)據(jù)接收成功信息至體外控制設(shè)備,在校驗(yàn)錯(cuò)誤后發(fā)送數(shù)據(jù)接收失敗信息至體外控制設(shè)備;
D、體內(nèi)設(shè)備接收來自體外控制設(shè)備發(fā)送的結(jié)束指令,所述結(jié)束指令包含有所述升級(jí)版本的軟件程序數(shù)據(jù)的CRC校驗(yàn)值;計(jì)算存儲(chǔ)在所述第一存儲(chǔ)區(qū)的軟件程序數(shù)據(jù)的CRC校驗(yàn)值,并與所述結(jié)束指令中的CRC校驗(yàn)值進(jìn)行比較,在校驗(yàn)正確后將所述軟件程序數(shù)據(jù)中的函數(shù)地址向量寫入第二存儲(chǔ)區(qū),并發(fā)送結(jié)束指令接收成功信息至體外控制設(shè)備。在本發(fā)明所述的軟件升級(jí)方法中,還包括步驟
E、體內(nèi)設(shè)備升級(jí)成功后,復(fù)位所述體內(nèi)設(shè)備,并運(yùn)行所述升級(jí)版本的軟件程序數(shù)據(jù);
F、若體內(nèi)設(shè)備升級(jí)失敗,則返回步驟A。在本發(fā)明所述的軟件升級(jí)方法中,所述函數(shù)地址向量包括更新主函數(shù)和中斷函數(shù)入口地址。在本發(fā)明所述的軟件升級(jí)方法中,步驟A之前還包括
A01、體內(nèi)設(shè)備檢測(cè)設(shè)置在其內(nèi)部的干簧管是否閉合,體內(nèi)設(shè)備對(duì)應(yīng)的體外位置放置有磁鐵,并持續(xù)預(yù)設(shè)時(shí)間,若是,則測(cè)量所述干簧管閉合的時(shí)間是否超過預(yù)設(shè)時(shí)間;若超過預(yù)設(shè)時(shí)間,則設(shè)置軟件升級(jí)標(biāo)記,進(jìn)入步驟A。本發(fā)明的有益效果是,首先,通過增加CRC校驗(yàn)確保升級(jí)的軟件程序數(shù)據(jù)無誤,保證了植入式醫(yī)療設(shè)備的體內(nèi)設(shè)備升級(jí)的安全性和可靠性。本發(fā)明的技術(shù)方案應(yīng)用廣泛,能夠適用于任何植入式醫(yī)療設(shè)備的軟件升級(jí)。其次,通過在軟件程序數(shù)據(jù)發(fā)送失敗時(shí)重復(fù)發(fā)送軟件程序數(shù)據(jù),保證了軟件升級(jí)的可靠性,使得體內(nèi)設(shè)備的用戶有時(shí)間調(diào)整體外控制設(shè)備,不會(huì)導(dǎo)致軟件升級(jí)到中途而中斷。再者,通過更新包括主程序和中斷入口地址的所有軟件程序的入口地址來達(dá)到全部程序數(shù)據(jù)更新的目的。軟件升級(jí)完成以后,體內(nèi)設(shè)備自動(dòng)復(fù)位運(yùn)行升級(jí)版本的軟件程序數(shù)據(jù)。最后,體內(nèi)醫(yī)療儀器通過體外控制設(shè)備與磁鐵的共同作用才能啟動(dòng)軟件升級(jí),提高軟件升級(jí)的可靠性和安全性。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中
圖1是依據(jù)本發(fā)明一實(shí)施例的植入式醫(yī)療設(shè)備的軟件升級(jí)方法流程示意圖; 圖2是步驟102的詳細(xì)流程圖3是依據(jù)本發(fā)明另一實(shí)施例的植入式醫(yī)療設(shè)備的軟件升級(jí)方法流程示意圖; 圖4是步驟103的詳細(xì)流程圖; 圖5是步驟104的詳細(xì)流程圖6是依據(jù)本發(fā)明再一實(shí)施例的植入式醫(yī)療設(shè)備的軟件升級(jí)方法流程示意圖; 圖7是依據(jù)本發(fā)明一實(shí)施例的由植入式醫(yī)療設(shè)備執(zhí)行的軟件升級(jí)方法流程示意圖; 圖8是依據(jù)本發(fā)明另一實(shí)施例的由植入式醫(yī)療設(shè)備執(zhí)行的軟件升級(jí)方法流程示意圖; 圖9是應(yīng)用圖1-6所述的軟件升級(jí)方法的體外控制設(shè)備的結(jié)構(gòu)示意圖; 圖10是圖9中的第一檢測(cè)單元902的結(jié)構(gòu)示意圖; 圖11是應(yīng)用圖7-8所述的軟件升級(jí)方法的體內(nèi)設(shè)備的結(jié)構(gòu)示意圖; 圖12是依據(jù)本發(fā)明另一實(shí)施例的體內(nèi)設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式圖1是依據(jù)本發(fā)明一實(shí)施例的植入式醫(yī)療設(shè)備的軟件升級(jí)方法100流程示意圖。 方法100由控制體內(nèi)設(shè)備中的軟件升級(jí)的體外控制設(shè)備執(zhí)行。參考圖1可知,方法100包括如下步驟
步驟101、體外控制設(shè)備獲取升級(jí)版本的軟件程序數(shù)據(jù),并向體內(nèi)設(shè)備發(fā)送軟件升級(jí)請(qǐng)求指令,所述軟件升級(jí)請(qǐng)求指令附加有其對(duì)應(yīng)的CRC校驗(yàn)值,且包括對(duì)應(yīng)的向體內(nèi)設(shè)備的標(biāo)識(shí);
步驟102、體外控制設(shè)備檢測(cè)是否接收到所述體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),并依據(jù)檢測(cè)結(jié)果向體內(nèi)設(shè)備發(fā)送所述升級(jí)版本的軟件程序數(shù)據(jù);
步驟103、體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否接收成功,若是,則進(jìn)入步驟104 ; 若否,則返回步驟102重新發(fā)送所述軟件程序數(shù)據(jù);步驟104、體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否發(fā)送完畢,并依據(jù)檢測(cè)結(jié)果發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令。其中,軟件程序數(shù)據(jù)可根據(jù)需要分為多個(gè)數(shù)據(jù)段進(jìn)行發(fā)送。在本發(fā)明一實(shí)施例中, 步驟102具體包括如下步驟,如圖2所示
步驟1021、體外控制設(shè)備檢測(cè)是否接收到體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),若接收到所述準(zhǔn)備完畢響應(yīng),則進(jìn)入步驟1022,判斷所述體內(nèi)設(shè)備的軟件的當(dāng)前版本是否需要升級(jí),若需要升級(jí),則進(jìn)入步驟1023 ;若未接收到所述準(zhǔn)備完畢響應(yīng),則進(jìn)入步驟IOM ;
步驟1023、體外控制設(shè)備依據(jù)升級(jí)版本的軟件程序數(shù)據(jù)的長(zhǎng)度將其劃分為多個(gè)數(shù)據(jù)段,每一數(shù)據(jù)段附加有其對(duì)應(yīng)的CRC校驗(yàn)值,依次發(fā)送附加有CRC校驗(yàn)值的所述多個(gè)數(shù)據(jù)段;
步驟1024、體外控制設(shè)備判斷是否超過第一預(yù)設(shè)重發(fā)次數(shù),若否,則返回步驟101重新發(fā)送所述軟件升級(jí)請(qǐng)求指令,若是,則結(jié)束軟件升級(jí)過程,可由用戶決定是否重新進(jìn)行軟件升級(jí)。在本發(fā)明一實(shí)施例中,在步驟101之前還包括如下步驟(如圖3所示)
步驟101’、設(shè)置磁鐵于體內(nèi)設(shè)備對(duì)應(yīng)的體外位置,所述磁鐵用于吸合位于體內(nèi)設(shè)備內(nèi)的干簧管,并至少持續(xù)預(yù)設(shè)時(shí)間。磁鐵的存在使得體內(nèi)設(shè)備內(nèi)的干簧管閉合,干簧管閉合保持一段時(shí)間,就可認(rèn)為磁鐵的放置是用戶想要升級(jí)軟件的操作,而非意外操作(即意外放置磁鐵導(dǎo)致干簧管閉合)。因?yàn)橐话闱闆r下,如果不是用戶真正的放置操作,干簧管閉合時(shí)間會(huì)是短暫的,防止了對(duì)體內(nèi)設(shè)備軟件升級(jí)的誤操作,增強(qiáng)了軟件升級(jí)的可靠性和安全性。其它步驟同圖1所示的步驟101-104,此處不再贅述。在本發(fā)明一實(shí)施例中,步驟103具體如圖4所示,包括如下步驟
步驟1031,體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否接收成功,若是,則進(jìn)入步驟 104 ;若否,則進(jìn)入步驟1032判斷是否超過第二預(yù)設(shè)重發(fā)次數(shù),若未超過,則返回步驟102, 重新發(fā)送所述軟件程序數(shù)據(jù);若超過,則結(jié)束軟件升級(jí)過程,可由用戶決定是否重新進(jìn)行軟件升級(jí)。對(duì)于劃分了多個(gè)數(shù)據(jù)段的軟件程序數(shù)據(jù),步驟104具體包括如下步驟,如圖5所示
1041、體外控制設(shè)備檢測(cè)所述多個(gè)數(shù)據(jù)段是否發(fā)送完畢,若是,則進(jìn)入步驟1042;若否,則返回步驟102,繼續(xù)發(fā)送其余的數(shù)據(jù)段;
1042、體外控制設(shè)備發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令;這里的 CRC校驗(yàn)值是所有軟件程序數(shù)據(jù),也即所有數(shù)據(jù)段的CRC校驗(yàn)值。在本發(fā)明又一實(shí)施例中,軟件升級(jí)方法100除了步驟101-104 (此處為了簡(jiǎn)要起見,未示出)外,還包括以下步驟,如圖6所示
步驟105、體外控制設(shè)備檢測(cè)所述結(jié)束指令是否接收成功,若否,則進(jìn)入步驟106 ;若是,則說明升級(jí)操作成功完成,結(jié)束升級(jí)操作。步驟106、體外控制設(shè)備判斷是否超過第三預(yù)設(shè)重發(fā)次數(shù),若否,則返回步驟104, 重新發(fā)送所述結(jié)束指令。上文所述的第一預(yù)設(shè)重發(fā)次數(shù)、第二預(yù)設(shè)重發(fā)次數(shù)、第三預(yù)設(shè)重發(fā)次數(shù)、預(yù)設(shè)時(shí)間等的具體取值可根據(jù)實(shí)際需要來設(shè)定,可以相同也可以不相同,本發(fā)明對(duì)此不做限制。
本發(fā)明還提供另一種植入式醫(yī)療設(shè)備的軟件升級(jí)方法700,該方法由體內(nèi)設(shè)備來執(zhí)行,如圖7所示,方法700包括如下步驟
步驟701、體內(nèi)設(shè)備檢測(cè)是否接收到體外控制設(shè)備所發(fā)送的軟件升級(jí)請(qǐng)求指令,并在接收到所述軟件升級(jí)請(qǐng)求指令時(shí),核對(duì)所述軟件升級(jí)請(qǐng)求指令的CRC校驗(yàn)值以及對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí)是否正確,若正確,則進(jìn)入步驟702 ;
步驟702、體內(nèi)設(shè)備擦除用于存放升級(jí)版本的軟件程序數(shù)據(jù)的第一存儲(chǔ)區(qū),并發(fā)送準(zhǔn)備完畢響應(yīng)至體外控制設(shè)備;其中,與所述升級(jí)版本的軟件程序數(shù)據(jù)對(duì)應(yīng)的舊版本的軟件程序數(shù)據(jù)存放在第三存儲(chǔ)區(qū)中;
步驟703、體內(nèi)設(shè)備接收來自體外控制設(shè)備發(fā)送的所述升級(jí)版本的軟件程序數(shù)據(jù),并在校驗(yàn)正確后將其寫入所述第一存儲(chǔ)區(qū)并發(fā)送數(shù)據(jù)接收成功信息至體外控制設(shè)備,在校驗(yàn)錯(cuò)誤后發(fā)送數(shù)據(jù)接收失敗信息至體外控制設(shè)備;
步驟704、體內(nèi)設(shè)備接收來自體外控制設(shè)備發(fā)送的結(jié)束指令,所述結(jié)束指令包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值;計(jì)算存儲(chǔ)在所述第一存儲(chǔ)區(qū)的軟件程序數(shù)據(jù)的CRC校驗(yàn)值,并與所述結(jié)束指令中的CRC校驗(yàn)值進(jìn)行比較,在校驗(yàn)正確后將所述軟件程序數(shù)據(jù)中的函數(shù)地址向量寫入第二存儲(chǔ)區(qū),并發(fā)送結(jié)束指令接收成功信息至體外控制設(shè)備。這里的函數(shù)地址向量包括更新主函數(shù)和中斷函數(shù)入口地址。當(dāng)軟件更新過程完成時(shí),就可以通過更新主函數(shù)和中斷函數(shù)入口地址來定位對(duì)應(yīng)的功能軟件地址,從而運(yùn)行更新后的程序。在本發(fā)明一實(shí)施例中,除了步驟701-704外,還包括步驟705 體內(nèi)設(shè)備升級(jí)成功后,復(fù)位所述體內(nèi)設(shè)備,并運(yùn)行所述升級(jí)版本的軟件程序數(shù)據(jù)。如果方法700升級(jí)失敗,則可以根據(jù)需要決定是否重新下載新版本的軟件程序數(shù)據(jù)。本發(fā)明提供的對(duì)體內(nèi)設(shè)備的功能軟件的升級(jí)方法中,新版本的程序數(shù)據(jù)單獨(dú)存放在第一存儲(chǔ)區(qū),該新版本的程序數(shù)據(jù)的入口地址存放在第二存儲(chǔ)區(qū),而新版本的程序數(shù)據(jù)對(duì)應(yīng)的舊版本的程序數(shù)據(jù)存放在第三存儲(chǔ)區(qū),這樣保證了新版本的操作不會(huì)擦除舊版本,不影響舊版本的軟件程序數(shù)據(jù)的執(zhí)行。即便升級(jí)失敗,舊版本的程序仍能繼續(xù)運(yùn)行,保證了升級(jí)過程中功能軟件的正常運(yùn)行,也滿足了用戶對(duì)體內(nèi)設(shè)備的極高安全性的需求。可依據(jù)不同的功能需求,更新一個(gè)或多個(gè)功能程序,其對(duì)應(yīng)的包括更新主函數(shù)和中斷函數(shù)入口地址的函數(shù)地址向量也會(huì)隨即更新,而與新版本對(duì)應(yīng)的舊版本的軟件程序數(shù)據(jù)不再需要,可對(duì)其擦除,用于后續(xù)升級(jí)時(shí)存放其它新版本的軟件程序數(shù)據(jù)。本方案設(shè)置多個(gè)存儲(chǔ)區(qū),新版本的更新不影響舊版本的運(yùn)行,在新版本更新完成之后,便可釋放舊版本占用的存儲(chǔ)區(qū),用于存放其它新版本程序,既保證了升級(jí)的安全性,也避免了存儲(chǔ)資源的浪費(fèi)。在本發(fā)明一實(shí)施例中,步驟701之前還包括以下步驟(如圖8所示)
步驟701’、體內(nèi)設(shè)備檢測(cè)設(shè)置在其內(nèi)部的干簧管是否閉合,體內(nèi)設(shè)備對(duì)應(yīng)的體外位置設(shè)置有磁鐵,并持續(xù)預(yù)設(shè)時(shí)間,若是,則測(cè)量所述干簧管閉合的時(shí)間是否超過預(yù)設(shè)時(shí)間;若超過預(yù)設(shè)時(shí)間,則設(shè)置軟件升級(jí)標(biāo)記,然后進(jìn)入步驟701。其它步驟同圖7,此處不再贅述。應(yīng)用上述圖1-6所述的軟件升級(jí)方法的體外控制設(shè)備的具體結(jié)構(gòu)如圖9所示,體外控制設(shè)備900包括依次通信連接的升級(jí)請(qǐng)求指令發(fā)送單元901、第一檢測(cè)單元902、第二檢測(cè)單元903、第三檢測(cè)單元904。升級(jí)請(qǐng)求指令發(fā)送單元901,用于獲取升級(jí)版本的軟件程序數(shù)據(jù),并發(fā)送軟件升級(jí)請(qǐng)求指令,所述軟件升級(jí)請(qǐng)求指令附加有其對(duì)應(yīng)的CRC校驗(yàn)值,且包括對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí)。第一檢測(cè)單元902,用于檢測(cè)是否接收到所述體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),并依據(jù)檢測(cè)結(jié)果發(fā)送所述升級(jí)版本的軟件程序數(shù)據(jù)。第二檢測(cè)單元903,用于檢測(cè)所述軟件程序數(shù)據(jù)是否接收成功,若是,則由第三檢測(cè)單元904進(jìn)行處理;若否,則由第一檢測(cè)單元902重新發(fā)送所述軟件程序數(shù)據(jù)。在本發(fā)明一實(shí)施例中,第二檢測(cè)單元903還用于,在檢測(cè)到所述軟件程序數(shù)據(jù)接收失敗時(shí),判斷是否超過第二預(yù)設(shè)重發(fā)次數(shù),若否,則由第一檢測(cè)單元902重新發(fā)送所述軟件程序數(shù)據(jù)。第三檢測(cè)單元904,用于檢測(cè)所述軟件程序數(shù)據(jù)是否發(fā)送完畢,并依據(jù)檢測(cè)結(jié)果發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令。在本發(fā)明一實(shí)施例中,第三檢測(cè)單元904具體用于檢測(cè)所述多個(gè)數(shù)據(jù)段是否發(fā)送完畢,若是,則發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令;若否,則繼續(xù)發(fā)送其余的數(shù)據(jù)段。第一檢測(cè)單元902具體包括準(zhǔn)備完畢響應(yīng)檢測(cè)單元9021、劃分單元9022、判斷單元9023,如圖10所示。 準(zhǔn)備完畢響應(yīng)檢測(cè)單元9021,用于檢測(cè)是否接收到所述體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),若接收到所述準(zhǔn)備完畢響應(yīng),則判斷所述體內(nèi)設(shè)備的軟件的當(dāng)前版本是否需要升級(jí), 若需要升級(jí),則由劃分單元進(jìn)行處理;若未接收到所述準(zhǔn)備完畢響應(yīng),則由判斷單元進(jìn)行處理;
劃分單元9022,用于依據(jù)升級(jí)版本的軟件程序數(shù)據(jù)的長(zhǎng)度將其劃分為多個(gè)數(shù)據(jù)段,每一數(shù)據(jù)段附加有其對(duì)應(yīng)的CRC校驗(yàn)值,依次發(fā)送附加有CRC校驗(yàn)值的所述多個(gè)數(shù)據(jù)段;
判斷單元9023,用于判斷是否超過第一預(yù)設(shè)重發(fā)次數(shù),若否,則由所述升級(jí)請(qǐng)求指令發(fā)送單元901重新發(fā)送所述軟件升級(jí)請(qǐng)求指令。其中,體外控制設(shè)備900還可以包括第四檢測(cè)單元,用于檢測(cè)所述結(jié)束指令是否接收成功,若否,則判斷是否超過第三預(yù)設(shè)重發(fā)次數(shù),在未超過所述第三預(yù)設(shè)重發(fā)次數(shù)時(shí)重新發(fā)送所述結(jié)束指令。圖11示出了一種體內(nèi)設(shè)備1100,體內(nèi)設(shè)備1100中的功能模塊的軟件能夠根據(jù)需要進(jìn)行更新,體內(nèi)設(shè)備1100包括檢測(cè)單元1101、擦除單元1102、第一校驗(yàn)單元1103、第二校驗(yàn)單元1104、復(fù)位和運(yùn)行單元1105。檢測(cè)單元1100,用于檢測(cè)是否接收到軟件升級(jí)請(qǐng)求指令,并在接收到所述軟件升級(jí)請(qǐng)求指令時(shí),核對(duì)所述軟件升級(jí)請(qǐng)求指令的CRC校驗(yàn)值以及對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí)是否正確,若正確,則由擦除單元進(jìn)行處理。擦除單元1102,用于擦除用于存放升級(jí)版本的軟件程序數(shù)據(jù)的第一存儲(chǔ)區(qū)A,并發(fā)送準(zhǔn)備完畢響應(yīng)至體外控制設(shè)備。第一校驗(yàn)單元1103,用于接收來自體外控制設(shè)備發(fā)送的所述升級(jí)版本的軟件程序數(shù)據(jù),并在校驗(yàn)正確后將其寫入所述第一存儲(chǔ)區(qū)A并發(fā)送數(shù)據(jù)接收成功信息至體外控制設(shè)備,在校驗(yàn)錯(cuò)誤后發(fā)送數(shù)據(jù)接收失敗信息至體外控制設(shè)備。第二校驗(yàn)單元1104,用于接收來自體外控制設(shè)備發(fā)送的結(jié)束指令,所述結(jié)束指令包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值;對(duì)所述結(jié)束指令進(jìn)行校驗(yàn),在校驗(yàn)正確后將所述結(jié)束指令中有關(guān)所述軟件程序數(shù)據(jù)的入口地址的部分寫入第二存儲(chǔ)區(qū)B,并發(fā)送結(jié)束指令接收成功信息至體外控制設(shè)備。復(fù)位和運(yùn)行單元1105,用于復(fù)位所述體內(nèi)設(shè)備,并運(yùn)行所述升級(jí)版本的軟件程序數(shù)據(jù)。其中,為了描述方便,圖中僅示出了與軟件升級(jí)相關(guān)的功能單元,體內(nèi)設(shè)備1100 的其它功能模塊未示出,例如刺激輸出模塊、心臟起搏模塊等。在本發(fā)明一實(shí)施例中,體內(nèi)設(shè)備1100還包括閉合檢測(cè)單元1106,如圖12所示,閉合檢測(cè)單元1106用于檢測(cè)干簧管是否閉合,若是,則測(cè)量所述干簧管閉合的時(shí)間是否超過預(yù)設(shè)時(shí)間;若超過預(yù)設(shè)時(shí)間,則設(shè)置軟件升級(jí)標(biāo)記,再由檢測(cè)單元1100進(jìn)一步處理。只有在軟件升級(jí)標(biāo)記置為1的前提下才能由體外控制設(shè)備執(zhí)行軟件升級(jí)操作,提高了軟件升級(jí)的可靠性和安全性。關(guān)于體外控制設(shè)備和體內(nèi)設(shè)備的通信方式,本發(fā)明對(duì)此不加限制,通過更新體內(nèi)設(shè)備內(nèi)的軟件程序可以改變相應(yīng)的通信方式,本發(fā)明的軟件更新方案不僅能夠更新幫助患者治療疾病的功能程序,還能夠更換功能程序,使得在舊的功能程序數(shù)據(jù)不再需要時(shí),更改為患者所需要的其他體征監(jiān)測(cè)或輔助治療功能程序。通過更改軟件程序的入口地址,可以很方便的擦除舊程序并替換為新程序。本發(fā)明通過在軟件程序數(shù)據(jù)接收失敗時(shí)重復(fù)發(fā)送軟件程序數(shù)據(jù),保證了軟件升級(jí)的可靠性,使得用戶有時(shí)間調(diào)整體外控制設(shè)備,不會(huì)導(dǎo)致軟件升級(jí)到中途而中斷。通過增加 CRC校驗(yàn)確保升級(jí)的軟件程序數(shù)據(jù)無誤。本發(fā)明的技術(shù)方案應(yīng)用廣泛,能夠適用于任何植入式醫(yī)療設(shè)備的軟件升級(jí)。而且,通過更新包括主程序和中斷入口地址的所有軟件程序的入口地址來達(dá)到部分或全部程序數(shù)據(jù)更新的目的。軟件升級(jí)完成以后,體內(nèi)醫(yī)療儀器自動(dòng)復(fù)位運(yùn)行升級(jí)版本的軟件程序數(shù)據(jù)。另外,體內(nèi)醫(yī)療儀器通過體外控制設(shè)備與磁鐵的共同作用才能啟動(dòng)軟件升級(jí),提高軟件升級(jí)的可靠性和安全性。
權(quán)利要求
1.一種植入式醫(yī)療設(shè)備的軟件升級(jí)方法,用于體外控制設(shè)備為體內(nèi)設(shè)備進(jìn)行軟件升級(jí),其特征在于,包括步驟51、體外控制設(shè)備獲取升級(jí)版本的軟件程序數(shù)據(jù),并向體內(nèi)設(shè)備發(fā)送軟件升級(jí)請(qǐng)求指令,所述軟件升級(jí)請(qǐng)求指令附加有其對(duì)應(yīng)的CRC校驗(yàn)值,且包括對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí);52、體外控制設(shè)備檢測(cè)是否接收到所述體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),并依據(jù)檢測(cè)結(jié)果向體內(nèi)設(shè)備發(fā)送所述升級(jí)版本的軟件程序數(shù)據(jù);53、體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否接收成功,若是,則進(jìn)入步驟S4;若否, 則重新發(fā)送所述軟件程序數(shù)據(jù);54、體外控制設(shè)備檢測(cè)所述軟件程序數(shù)據(jù)是否發(fā)送完畢,并依據(jù)檢測(cè)結(jié)果發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令。
2.根據(jù)權(quán)利要求1所述的軟件升級(jí)方法,其特征在于,步驟S2具體包括521、體外控制設(shè)備檢測(cè)是否接收到體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),若接收到所述準(zhǔn)備完畢響應(yīng),則判斷體內(nèi)設(shè)備的軟件的當(dāng)前版本是否需要升級(jí),若需要升級(jí),則進(jìn)入步驟S22 ; 若未接收到所述準(zhǔn)備完畢響應(yīng),則進(jìn)入步驟S23 ;522、體外控制設(shè)備依據(jù)升級(jí)版本的軟件程序數(shù)據(jù)的長(zhǎng)度將其劃分為多個(gè)數(shù)據(jù)段,每一數(shù)據(jù)段附加有其對(duì)應(yīng)的CRC校驗(yàn)值,依次發(fā)送附加有CRC校驗(yàn)值的所述多個(gè)數(shù)據(jù)段;523、體外控制設(shè)備判斷是否超過第一預(yù)設(shè)重發(fā)次數(shù),若否,則返回步驟Sl重新發(fā)送所述軟件升級(jí)請(qǐng)求指令。
3.根據(jù)權(quán)利要求2所述的軟件升級(jí)方法,其特征在于,在步驟Sl之前還包括SO、設(shè)置磁鐵于體內(nèi)設(shè)備對(duì)應(yīng)的體外位置,所述磁鐵用于吸合位于體內(nèi)設(shè)備內(nèi)的干簧管,并至少持續(xù)預(yù)設(shè)時(shí)間。
4.根據(jù)權(quán)利要求1所述的軟件升級(jí)方法,其特征在于,步驟S3中,重新發(fā)送所述軟件程序數(shù)據(jù)具體包括體外控制設(shè)備判斷是否超過第二預(yù)設(shè)重發(fā)次數(shù),若否,則重新發(fā)送所述軟件程序數(shù)據(jù)。
5.根據(jù)權(quán)利要求2所述的軟件升級(jí)方法,其特征在于,步驟S4具體包括541、體外控制設(shè)備檢測(cè)所述多個(gè)數(shù)據(jù)段是否發(fā)送完畢,若是,則進(jìn)入步驟S42;若否, 則繼續(xù)發(fā)送其余的數(shù)據(jù)段;542、體外控制設(shè)備發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令。
6.根據(jù)權(quán)利要求1所述的軟件升級(jí)方法,其特征在于,還包括步驟55、體外控制設(shè)備檢測(cè)所述結(jié)束指令是否接收成功,若否,則進(jìn)入步驟S6;56、體外控制設(shè)備判斷是否超過第三預(yù)設(shè)重發(fā)次數(shù),若否,則重新發(fā)送所述結(jié)束指令。
7.—種植入式醫(yī)療設(shè)備的軟件升級(jí)方法,用于體內(nèi)設(shè)備通過體外控制設(shè)備來進(jìn)行升級(jí),其特征在于,包括步驟A、體內(nèi)設(shè)備檢測(cè)是否接收到體外控制設(shè)備所發(fā)送的軟件升級(jí)請(qǐng)求指令,并在接收到所述軟件升級(jí)請(qǐng)求指令時(shí),核對(duì)所述軟件升級(jí)請(qǐng)求指令的CRC校驗(yàn)值以及對(duì)應(yīng)的體內(nèi)設(shè)備的標(biāo)識(shí)是否正確,若正確,則進(jìn)入步驟B ;B、體內(nèi)設(shè)備擦除用于存放升級(jí)版本的軟件程序數(shù)據(jù)的第一存儲(chǔ)區(qū),并發(fā)送準(zhǔn)備完畢響應(yīng)至體外控制設(shè)備;其中,與所述升級(jí)版本的軟件程序數(shù)據(jù)對(duì)應(yīng)的舊版本的軟件程序數(shù)據(jù)存放在第三存儲(chǔ)區(qū)中;C、體內(nèi)設(shè)備接收來自體外控制設(shè)備發(fā)送的所述升級(jí)版本的軟件程序數(shù)據(jù),并在校驗(yàn)正確后將其寫入所述第一存儲(chǔ)區(qū)并發(fā)送數(shù)據(jù)接收成功信息至體外控制設(shè)備,在校驗(yàn)錯(cuò)誤后發(fā)送數(shù)據(jù)接收失敗信息至體外控制設(shè)備;D、體內(nèi)設(shè)備接收來自體外控制設(shè)備發(fā)送的結(jié)束指令,所述結(jié)束指令包含有所述升級(jí)版本的軟件程序數(shù)據(jù)的CRC校驗(yàn)值;計(jì)算存儲(chǔ)在所述第一存儲(chǔ)區(qū)的軟件程序數(shù)據(jù)的CRC校驗(yàn)值,并與所述結(jié)束指令中的CRC校驗(yàn)值進(jìn)行比較,在校驗(yàn)正確后將所述軟件程序數(shù)據(jù)中的函數(shù)地址向量寫入第二存儲(chǔ)區(qū),并發(fā)送結(jié)束指令接收成功信息至體外控制設(shè)備。
8.根據(jù)權(quán)利要求7所述的軟件升級(jí)方法,其特征在于,還包括步驟E、體內(nèi)設(shè)備升級(jí)成功后,復(fù)位所述體內(nèi)設(shè)備,并運(yùn)行所述升級(jí)版本的軟件程序數(shù)據(jù);F、若體內(nèi)設(shè)備升級(jí)失敗,則返回步驟A。
9.根據(jù)權(quán)利要求7所述的軟件升級(jí)方法,其特征在于,所述函數(shù)地址向量包括更新主函數(shù)和中斷函數(shù)入口地址。
10.根據(jù)權(quán)利要求7-9任一項(xiàng)所述的軟件升級(jí)方法,其特征在于,步驟A之前還包括 A01、體內(nèi)設(shè)備檢測(cè)設(shè)置在其內(nèi)部的干簧管是否閉合,體內(nèi)設(shè)備對(duì)應(yīng)的體外位置放置有磁鐵,并持續(xù)預(yù)設(shè)時(shí)間,若是,則測(cè)量所述干簧管閉合的時(shí)間是否超過預(yù)設(shè)時(shí)間;若超過預(yù)設(shè)時(shí)間,則設(shè)置軟件升級(jí)標(biāo)記,進(jìn)入步驟A。
全文摘要
本發(fā)明涉及植入式醫(yī)療設(shè)備的軟件升級(jí)方法,其中,用于體外控制設(shè)備為體內(nèi)設(shè)備進(jìn)行軟件升級(jí)的方法包括步驟S1、獲取升級(jí)版本的軟件程序數(shù)據(jù),并發(fā)送軟件升級(jí)請(qǐng)求指令;S2、檢測(cè)是否接收到體內(nèi)設(shè)備返回的準(zhǔn)備完畢響應(yīng),并依據(jù)檢測(cè)結(jié)果發(fā)送所述升級(jí)版本的軟件程序數(shù)據(jù);S3、檢測(cè)所述軟件程序數(shù)據(jù)是否接收成功,若是,則進(jìn)入步驟S4;若否,則重新發(fā)送所述軟件程序數(shù)據(jù);S4、檢測(cè)所述軟件程序數(shù)據(jù)是否發(fā)送完畢,并依據(jù)檢測(cè)結(jié)果發(fā)送包含有所述軟件程序數(shù)據(jù)的CRC校驗(yàn)值的結(jié)束指令。本方案通過增加CRC校驗(yàn)確保升級(jí)的軟件程序數(shù)據(jù)無誤,從而保證了植入式醫(yī)療設(shè)備的體內(nèi)設(shè)備升級(jí)的安全性和可靠性。
文檔編號(hào)G06F9/445GK102184113SQ20111012238
公開日2011年9月14日 申請(qǐng)日期2011年5月12日 優(yōu)先權(quán)日2011年5月12日
發(fā)明者劉靈華, 趙益新 申請(qǐng)人:深圳市锘特達(dá)科技發(fā)展有限公司