Semiconductor Freescale
Ngwa ndetu

Nọmba akwukwo: AN4496
Mkpu 0, 03/2012

Oximeter Pulse Iji USB PHDC

site na: Jose Santiago Lopez Ramirez RTAC America

Okwu mmalite

Ihe edetu Ngwa a na-akowaputa mmejuputa ihe nkedo nke ikuku nke na-agwa komputa okwu site na iji klas nke Nlekọta Ahụike Nke Onwe. Emejuputa atumatu na Freescale MK53N512 Kinetis microcontroller mana enwere ike mejuputa ya na ihe obula Freescale USB ruru microcontroller.
Edere ihe edere Ngwa a maka ndị mmepe ọgwụ, ndị injinia bekee ma ọ bụ onye ọ bụla nwere mmasi na klaasị ngwaọrụ ahụike nke USB. Ka o sina dị, a chọrọ ụfọdụ nkà na mmemme C na microcontrollers njikwa.
Ihe ederede Ngwa a nwere njikọ chiri anya yana akwụkwọ ntinye akwụkwọ "AN4327 Pulse Oximeter Fundamentals and Design". Akwadoro ka ị gụọ AN4327 maka nghọta ka mma.

Klas ngwaọrụ nlekọta ahụike nkeonwe gafereview

Universal Serial Bus (USB) bụ ọkọlọtọ na-akọwa ngwaike na protocol maka mmekọrịta n'etiti onye ọbịa (na-abụkarị PC) na otu ngwaọrụ ma ọ bụ karịa. Ngwaọrụ USB ọ bụla nwere ebumnuche nke ya, ya mere, a na-ekewa ha na klaasị dị iche iche dịka ọrụ ha si dị. Otu example bụ klaasị Human Interface Device (HID) nke a na-eji na ngwaọrụ dị ka ahụigodo kọmputa na òké.
Pulse Oximeter Mmejuputa iwu
Klas nke Ahụike Ahụike Onwe (PHDC) na-akọwa ihe ndị achọrọ iji mepụta nkwukọrịta na mmekọrịta na-enweghị ntụpọ n'etiti ngwaọrụ ahụike USB na ndị ọrụ USB, ka hazie ya, chekwaa ma ọ bụ bufee ya na dọkịta ma ọ bụ onye ikwu site na ịntanetị.
USB PHDC na-eji usoro mgbanwe ahụike ahụike dị ka ISO / IEEE 11073-20601 dị ka usoro njem maka ngwugwu nkwukọrịta n'etiti onye nnabata na ngwaọrụ ahụike nkeonwe. Ọ na-edozi ụzọ e si eziga data na ozi na USB.

Pulse Oximeter Mmejuputa iwu

A na-emeju Pulse Oximeter site na iji Freescale TWR-K53N512, ụlọ ọrụ mmepe nke ụlọ ọgwụ gụnyere onye na-ahụ maka ọgwụ na-ahụ maka ọgwụ MK53N512, MED-SPO2 ụzọ nkwụnye ihu igwe analog maka mmepe mmepe ọgwụgwọ, yana TWR- SER ụlọ elu ụlọ maka atụmatụ dị iche iche gụnyere nkwukọrịta usoro. Nke a bụ otu ngwaike ejiri na AN4327 "Pulse Oximeter Fundamentals and Design". Biko rụtụ aka na nke a ngwa ndetu maka ozi ndị ọzọ gbasara usu oximetry ụkpụrụ na ngwaike na-eji na usu oximeter mmepe.
Sistemu dabere na ngwugwu USB Freescale nwere PHDC nke bụ koodu efu maka imepụta azịza nke chọrọ njikọ USB yana enwere ike ibudata ya na Freescale. web ibe. Ngwunye a nwere ọrụ enwere ike iji na ọkwa ngwaọrụ (hazie elekere, malite modul USB, wdg…) yana ọkwa klaasị (ngwunye izipu-nnata, izipu nkọwa, wdg…).
Biko rụtụ aka na Freescale USB Stack na PHDC Stack Users Guide na Freescale USB Stack na PHDC Ngwaọrụ API Ntugharị Akwụkwọ ntuziaka maka nghọta ka mma.
Ekewara sọftụwia na isi ụzọ atọ: Nhazi usoro, ntinye ngwa na ntinye akwụkwọ.
A na-eme ngwa ikpeazụ na njedebe na-enweghị ngwụcha dị ka egosiri na eserese na-esote eserese (Ngosipụta 1).

Pulse Oximeter Mmejuputa iwuỌgụgụ 1. Ihe nlere nke ihe omuma ngwanrọ

Maka nghọta ka mma nke isiakwụkwọ a, a na-atụ aro ka ịmepe ọrụ MED-SPO2 PDHC C na view ọ bụ ka ị na-agụ ahịrị ndị a.

Mmalite sistemu

A na-ewepụta usoro usoro mgbe arụ ọrụ Init_Sys na mbido mmemme ahụ. Init_Sys bụ ọrụ ọkwa ngwaọrụ ma dịgasị iche na microcontroller. Ọ na - ebute ihe ndị achọrọ na microcontroller maka ọrụ nchịkọta. Init_Sys bu ụzọ mee ka nkwụsịtụ ndị dị na modul USB na-ahazi NVICICER2 na NVICISER2 na-edebanye aha. Mgbe ahụ ọ na - enyere modulu GPIO chọrọ ka microcontroller na - akpọ ọrụ GPIO_Init. Init_Sys na - akpọzi ọrụ pll_init nke na - ahazi microcontroller maka ịrụ ọrụ na 50MHz site na iji isi mmalite elekere. Ozugbo ahazigharị microcontroller ahaziri, MPU_CESR debanye aha ma mezie microcontroller iji mee ka ọ dị ike ma weta mgbaàmà elekere na modulu USB maka ọdịnihu.

Initialization ntinye

Nbido ngwa na - ahazi ihe eji ahazi ihe eji eme ihe eji eme ihe PHDC. Nhazi a bidoro mgbe akpọrọ ọrụ TestApp_Init. TestApp_Init bu ụzọ kpọọ ọrụ PHD_Transport_Init. Ọrụ a na-ejikwa ngụkọta nke modul USB nke microcontroller dị ka PHDC site na ime ka ndị na-eguzogide Pull-Up na ijikwa usoro ọgụgụ. PHD_Transport_Init weghachitere uru njehie. Ọ bụrụ na njehie "OK" na-laghachi na ọ pụtara na ngwaọrụ ka na-ama enumerated dị ka a PHD (Personal Healthcare Device) ma ọ bụghị ihe na-aga na-ezighị ezi n'oge ọgụgụ na ngwaọrụ nwere ike ghara ghọtara site usu PC. N'oge a, onye ọrụ ahụ ghọtara dị ka PHD mana akọwapụtabeghị ya dịka ngwaọrụ oximeter pulse site na iji ọkọlọtọ ISO / IEEE 11073-20601.
Mgbe emechara ọnụ, a na-ahazi TWR-K53N512 na LED ma ọ bụ bọtịnụ push maka ojiji n'ọdịnihu. A na-akpọ ọrụ SwTimer_Init maka ibido ngwanrọ ngwanrọ. Enwere ike ịchọta ozi gbasara ihe ngwanrọ ngwanrọ na ntinye ngwa "AN4327 Pulse Oximeter Fundamentals and Design": Ihe Odide A Software ngụ oge.
Ọrụ ikpeazụ a na-akpọ bụ vfnSpO2_AFE_Init. Ọrụ a na-ebute akụkụ ndị achọrọ (OpAmps, TRIAMPs, ADCs na oge) nke MED-SPO2 chọrọ.

Mmebi Ngwa

Ozugbo e meziri akụkụ ahụ, njikọ dị n'etiti PC na-akwado ya na ngwaọrụ ahụ. Ndị ọbịa PC ghọtara ngwaọrụ dị ka PHD mana ọ naghị arụ ọrụ nke ọma. A nkwurịta okwu protocol n'etiti usu PC na ngwaọrụ a chọrọ iji agbanweta ozi na a etozu na a pụrụ ịdabere n'ụzọ.
Ọtụtụ usoro nkwekọrịta nkwukọrịta dị, gụnyere ụfọdụ ogbugba ndu akọwapụtara nke ọma. Ka o sina dị, injinia na-akụ nzọ n'usoro ahaziri ahazi nke na-eme ka mmekọrịta dị n'etiti ngwaọrụ ọgwụ.
Continua Health Alliance® bụ nzukọ na-akwalite mmekọrịta mmekọrịta n'etiti ngwaọrụ ahụike. Mmezu nke ngosi a dabere na ụkpụrụ nke Continua® maka nkwukọrịta data gbasara ahụike n'etiti PC na ngwaọrụ nke na-eji ọkọlọtọ ISO / IEEE 11073-20601 "Nkwukọrịta ngwaọrụ ahụike nke onwe: Usoro mgbanwe mgbanwe kachasị mma" dị ka ntọala.
Nkọwa nkenke nke usoro nkwukọrịta 11073-20601 gosipụtara n'okpuru. Maka nkọwa zuru oke nke usoro nkwukọrịta na-ezo aka na ọkọlọtọ ISO / IEEE 11073-20601.

Usoro nkwukọrịta ISO / IEEE 11073-20601

Standardkpụrụ 11073-20601 na-akọwa usoro nkwukọrịta n'etiti ngwaọrụ ahụike ma ọ bụ "Ndị ọrụ" na ndị ọbịa ma ọ bụ "Ndị njikwa".
Enwere ike ịkọwapụta Agent dị ka ihe setịpụrụ akpọrọ MDS (Usoro Ngwaọrụ Ahụike). MDS ọ bụla na-akọwa akparamaagwa nke onye na-ahụ maka ọrụ (dịka mkpụrụ osisi pulim oximeter ma ọ bụ ọbara mgbali elu) Onye ọrụ ọ bụla nwere ike ịnwe otu ma ọ bụ karịa n'ime ihe MDS ndị a.
N'otu ụzọ ahụ, ihe MDS ọ bụla nwere obere ihe na-akọwapụta omume ya (dịka nha iji kọọ akụkọ). Ozi niile a ga-agarịrịrịrị na Onye njikwa ahụ ka ọ nwee ike ijikwa omume nke onye nnọchite anya ya. Ka o sina dị, ọ bụ naanị otu ihe MDS ka a ga-akọrọ n'otu oge (dịka anlọ Ọrụ agaghị abụ pulim oximeter yana nlele ọbara mgbali n'otu oge)
Ihe ngosi a na-anọchi anya Onye Nnọchiteanya nke nwere ike ịbụ okpokoro ahịhịa na nyocha ọbara mgbali).

ISOIEEE 11073-20601 usoro nkwukọrịtaỌgụgụ 2. Onye nnọchite anya mmadụ

N'ihe banyere ngosi a, Onye ọrụ ahụ nwere naanị otu ihe MDS kwekọrọ na ngwa pulse oximeter. Enwere ike ịchọta ozi zuru ezu gbasara ndị nnọchi anya ndị nnọchite anya akwụkwọ ISO / IEEE 11073-20601: 2010, n'isi nke 6, Ngwaọrụ ahụike DIM.
Kpụrụ IEEE na-akọwapụta igwe steeti maka ndị ọrụ na igwe steeti ndị ọzọ maka ndị njikwa. Ebe ọ bụ na ngwa ngosi anyị bụ ngwaọrụ, anyị ga-akọwa naanị igwe steeti steeti Agent. Ihe eserese a bụ ihe nnọchi anya dị mfe nke igwe steeti egosipụtara n'Isi nke 8, Ọgụgụ 10 nke ụkpụrụ ISO / IEEE 11073-20601: 2010.

Nnọchite anya mmadụNyocha 3. Igwe steeti steeti mmadụ

Na mbido, a kwụsịrị onye ọrụ ahụ na njikwa. Agent ga-ejikọrịrị onye njikwa iji mepụta nkwukọrịta. Mgbe e guzobere njikọ ahụ (na nke anyị mgbe edepụtara ngwaọrụ USB dị ka ngwaọrụ PHDC) Onye nnọchi anya ga-anọ na steeti ejikọtara.
Ozugbo ejikọtara ya, Onye ọrụ ahụ na mbụ nọ n'ọnọdụ "Unassociated". Onye ọrụ ahụ ga-ezigara "arịrịọ Association" iji bido nkwukọrịta. A na-eziga arịrịọ dị ka APDU (ngwa data protocol ngwa ngwa), data data nwere ozi achọrọ iji malite mkpakọrịta yana ọ ga-adaba na ihe MDS iji sonyere. Mkpakọrịta mkpakọrịta APDU ga-adị ka ihe ndị a.
/ * mkpakọrịta mkpakọrịta iji zipu * /
uint_8 USB_CONST PHD_OXI_ASSOC_REQ [ASSOC_REQ_SIZE] = {
0xE2, 0x00, / * APDU Nhọrọ CHdị (AarqApdu) * /
0x00, 0x32, / * CHOICE.na-agbaso = 50 * /
0x80, 0x00, 0x00, 0x00, / * assoc-mbipute * /
0x00, 0x01, 0x00, 0x2A, / * data-proto-list.count = 1 | ogologo = 42 * /
0x50, 0x79, / * data-proto-id = 20601 * /
0x00, 0x26, / * data-proto-info ogologo = 38 * /
0x80, 0x00, 0x00, 0x00, / * ogbakoVersion * /
0x80, 0x00, / * ngbanwe iwu = MDER ma ọ bụ PER * /
0x80, 0x00, 0x00, 0x00, / * nomenclatureVersion * /
0x00, 0x00, 0x00, 0x00, / * ọrụUnits | enweghị ikike mkpakọrịta ule * /
0x00, 0x80, 0x00, 0x00, / * sistemụ = sys-ụdị-gị n'ụlọnga * /
0x00, 0x08, / * system-id length = 8 na uru, (onye nrụpụta- na ngwa ọrụ akọwapụtara) * /
0x4C, 0x4E, 0x49, 0x41, 0x47, 0x45, 0x4E, 0x54, 0x40, 0x00, / * dev-config-id | nhazi nhazi * /
0x00, 0x01, / * data-req-ọnọdụ-ọkọlọtọ
0x00, 0x01 * / 0x01, 0x00, / * data-req-init-agent-gụọ, data-req-init-manager-count * /
0x00, 0x00, 0x00, 0x00 / * Depụta ndepụta * /};
Mgbe Onye ọrụ ahụ zitere arịrịọ mkpakọrịta ahụ, ọ na-aga na steeti "Associating" na-eche nzaghachi site na njikwa. Onye njikwa ahụ ga-edozi arịrịọ mkpakọrịta ahụ wee zipụ Nzaghachi Association dịka APDU natara. Ọ bụrụ na APDU kwekọrọ na MDS ama ama, Onye njikwa ahụ ga-eziga nzaghachi mkpakọrịta "anabatara" na-egosi na nhazi ahụ amatalarị, mgbe ahụ onye nnọchi anya ga-agbanye na steeti Operụ Ọrụ. Ọ bụrụ na anabatara arịrịọ mkpakọrịta ahụ mana Onye njikwa ahụ anaghị anabata MDS, ọ ga-ezighachi nzaghachi mkpakọrịta "nnabata-amaghị-nhazi" na-arịọ Onye Ọrụ maka nhazi MDS. Ọ bụrụ na ajụ arịrịọ mkpakọrịta ahụ, Onye ọrụ ga-agarịrị na steeti ekwesighi ma gbalịa ọzọ. Njikọ mkpakọrịta nke Onye njikwa dị ka ihe ndị a.
0xE3 0x00 APDU Nhọrọ (dị (AareApdu) 0x00 0x2C CHOICE.length = 44
0x00 0x03 utịp = nnabata-amaghi-config
0x50 0x79 data-proto-id = 20601
0x00 0x26 data-proto-info ogologo = 38
0x80 0x00 0x00 0x00 protocolVersion
0x80 0x00 ngbanwe iwu = MDER
0x80 0x00 0x00 0x00 nomenclatureVersion
0x00 0x00 0x00 0x00 arụ ọrụUnits
0x80 0x00 0x00 0x00 sistemụ type = sys-type-manager
0x00 0x08 system-id length = 8 na uru
Nzaghachi 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 0x00 0x00 nzaghachi onye njikwa 0
Nzaghachi 0x00 0x00 0x00 0x00 njikwa dị mma na data-req-mode-capab bụ mgbe 0
0x00 0x00 0x00 0x00 nhọrọList.count = 0 | nhọrọList.length = 0
Ma ọ bụrụ na Onye Ọrụ ahụ nabatara nzaghachi mkpakọrịta anabatara ma ọ bụ nke a nabatara-onye nnọchi anya, onye nnọchi anya ga-agbanye na steeti "Associated". N'okwu a, Onye njikwa ahụ nabatara arịrịọ mkpakọrịta ahụ, mana ọ maghị MDS na-alọghachị nzaghachi mkpakọrịta config-nabata-amaghị. N'ihi nke a, Onye nnọchite anya ga-eziga Nkwupụta Nhazi dị ka ndị a.
/ * Nhazi akụkọ mmemme * /
uint_8 USB_CONST PHD_OXI_CNFG_EVT_RPT [PHD_OXI_CNFG_EVT_RPT_SIZE] = {
0xE7, 0x00, / * APDU Nhọrọ CHdị (PrstApdu) * /
0x00, 0x70, / * CHOICE.na-agbaso = 112 * /
0x00, 0x6E, / * Ngwaọrụ STRING.length = 110 * /
0x00, 0x02, / * kpọọ-id (ọdịiche dị na nke a na ozi ndị ọzọ pụtara ìhè) * /
0x01, 0x01, / * CHOICE (Remote Operation In kpọọ | Nkwupụta Omume emere) * /
0x00, 0x68, / * CHOICE.na-agbaso = 104 * /
0x00, 0x00, / * obj-njikwa = 0 (MDS ihe) * / 0xFF, 0xFF, 0xFF, 0xFF, / * omume-oge = 0xFFFFFFFF * /
0x0D, 0x1C, / * omume-ụdị = MDC_NOTI_CONFIG * /
0x00, 0x5E, / * omume-info.length = 94 (mmalite nke ConfigReport) * /
0x40, 0x00, / * nhazi-akụkọ-id * /
0x00, 0x02, / * config-obj-list.count = 2 Ihe mmesho ga-“mara ọkwa” * /
0x00, 0x58, / * config-obj-list.length = 88 * /
0x00, 0x06, / * obj-klas = MDC_MOC_VMO_METRIC_NU * /
0x00, 0x01, / * obj-handle = 1 (.. nhoputa mbu bu SpO1) * /
0x00, 0x04, / * mbata.count = 4 * /
0x00, 0x24, / * àgwà. Ogologo = 36 * / 0x09, 0x2F, / * àgwà-id = MDC_ATTR_ID_TYPE * /
0x00, 0x04, / * àgwà-uru.length = 4 * /
0x00, 0x02, 0x4B, 0xB8, / * MDC_PART_SCADA | MDC_PULS_OXIM_SAT_O2 * /
0x0A, 0x46, / * àgwà-id = MDC_ATTR_METRIC_SPEC_SMALL * /
0x00, 0x02, / * àgwà-uru.length = 2 * /
0x40, 0xC0, / * nweta-echekwara-data, acc-manager-init, acc-agent- init, tụrụ * /
0x09, 0x96, / * àgwà-id = MDC_ATTR_UNIT_CODE * /
0x00, 0x02, / * àgwà-uru.length = 2 * /
0x02, 0x20, / * MDC_DIM_PERCENT * / 0x0A, 0x55, / * àgwà-id = MDC_ATTR_ATTRIBUTE_VAL_MAP * /
0x00, 0x0C, / * àgwà-uru.length = 12 * /
0x00, 0x02, / * AttrValMap.count = 2 * / Nweta
0x00, 0x08, / * AttrValMap.length = 8 * /
0x0A, 0x4C, 0x00, 0x02, / * MDC_ATTR_NU_VAL_OBS_BASIC | uru ogologo = 2 * /
0x09, 0x90, 0x00, 0x08, /* MDC_ATTR_TIME_STAMP_ABS | ogologo uru = 8 */
0x00, 0x06, / * obj-klas = MDC_MOC_VMO_METRIC_NU * /
0x00, 0x02, / * obj-handle = 2 (.. 2 mmesho bụ usu ọnụego) * /
0x00, 0x04, / * mbata.count = 4 * /
0x00, 0x24, / * àgwà. Ogologo = 36 * /
0x09, 0x2F, / * àgwà-id = MDC_ATTR_ID_TYPE * /
0x00, 0x04, / * àgwà-uru.length = 4 * /
0x00, 0x02, 0x48, 0x1A, / * MDC_PART_SCADA | MDC_PULS_OXIM_PULS_RATE * /
0x0A, 0x46, / * edu-id = MDC_ATTR_METRIC_SPEC_SMALL * / 0x00, 0x02, / * àgwà-uru.length = 2 * /
0x40, 0xC0, / * ha echekwara-data, acc-manager-init, acc-agent-init, tụrụ * / 0x09, 0x96, / * attribute-id = MDC_ATTR_UNIT_CODE * / 0x00, 0x02, / * àgwà-uru. ogologo = 2 * / 0x0A, 0xA0, / * MDC_DIM_BEAT_PER_MIN * / 0x0A, 0x55, / * àgwà-id = MDC_ATTR_ATTRIBUTE_VAL_MAP * / 0x00, 0x0C, / * àgwà-uru.length = 12 * / 0x00 / 0x. gụọ = 02 * /
0x00, 0x08, / * AttrValMap.length = 8 * /
0x0A, 0x4C, 0x00, 0x02, /* MDC_ATTR_NU_VAL_OBS_BASIC, 2 */ 0x09, 0x90, 0x00, 0x08 /* MDC_ATTR_TIME_STAMP_ABS, 8 */ ;
Nkwupụta nhazi a kwekọrọ na ngwaọrụ pulse oximeter. N'ebe a, onye ọrụ ahụ na-egosi na ọ ga-eziga ihe ọnụọgụ abụọ (ihe niile enwere ike ịkọwa na akwụkwọ ISO / IEEE 11073-20601: 2010 na isi nke 6: Ngwa ahụike onwe onye DIM). Ihe mbido nke mbu kwekọrọ na nkata oxygen (SpO2). Nọmba ọnụọgụ nke abụọ kwekọrọ n'ihe ọ̀tụ̀tụ̀ pulse.
Ozugbo e zipụrụ akụkọ nhazi ahụ, njikwa ga-azaghachi na-egosi ma enwere ike iji njikwa akụkọ ahụ ma ọ bụ na ọ gaghị. Ọ bụrụ na enwere ike iji nhazi ahụ kọọrọ, Onye ọrụ ga-agbanwe na steeti ọrụ. Ọ bụrụ na njikwa ahụ akwadoghị njikwa ahụ, Agent ga-anwale ọzọ site na iji nhazi dị iche nke Onye njikwa na-akwado. Nzaghachi Onye njikwa ga-adị ka ihe ndị a.
0xE7 0x00 APDU Choice Type (PrstApdu)
0x00 0x16 CHOICE.ike = 22
0x00 0x14 OCTET STRING.ike = 20
0x43 0x21 invoc-id = 0x4321 (bido dataApdu. MDER gbanye.)
0x02 0x01 CHOICE (Nzaghachi arụmọrụ arụmọrụ | Nkwupụta Omume emere)
0x00 0x0E CHOICE. Ogologo = 14
0x00 0x00 obj-handle = 0 (MDS ihe)
0x00 0x00 0x00 0x00 oge = 0
0x0D 0x1Cevent-ụdị = MDC_NOTI_CONFIG
0x00 0x04 omume-aza-info.length = 4
0x40 0x00 ConfigReportRsp.config-report-id = 0x4000 0x00 0x00 ConfigReportRsp.config-result = nabatara-nhazi
N'okwu a, Onye njikwa ahụ kọọrọ na anabatara nhazi na Onye nnọchi anya ga-agagharị na steeti na-arụ ọrụ.
Dịka ekwuru na mbụ, ọ bụrụ na onye nnọchi anya na-anata nzaghachi ọgbakọ nnabata ma ọ bụ anabataghị-amaghị, onye nnọchi anya ga-agafe na steeti emetụtara. N'otu oge na steeti ejikọtara, Onye njikwa ahụ nwere ike iji ọrụ "Nweta" n'oge ọ bụla iji rịọ njirimara MDS. Àgwà MDS nwere ozi gbasara ihe MDS dị ka ụdị ngwaọrụ (maka example, glucometer, temometa, ọbara mgbali na ndị ọzọ), aha ụlọ ọrụ, na ngwaọrụ nlereanya n'etiti ndị ọzọ.
A Get niile MDS àgwà arịrịọ dị ka ndị a.
0xE7 0x00 APDU Choice Type (PrstApdu)
0x00 0x0E CHOICE. Ogologo = 14
0x00 0x0C OCTET STRING.ike = = 12
0x34 0x56 invoc-id = 0x3456 (bido dataApdu. MDER gbanye.)
0x01 0x03 CHOICE (Remote Operation Involo | Nweta) 0x00 0x06 CHOICE.length = 6
0x00 0x00 njikwa = 0 (MDS ihe)
0x00 0x00 attribute-id-list.count = 0 (njirimara niile)
0x00 0x00 àgwà-id-list.length = 0
Ọ bụrụ na enwetara arịrịọ njirimara MDS niile, onye nnọchi anya ga-eji njirimara ya zaghachi. Na-eso example na-egosi nzaghachi nke Nweta njirimara iwu nke onye nnọchi anya na-ezigara onye njikwa.
/ * nzaghachi iji nweta àgwà iwu * /
uint_8 USB_CONST PHD_OXI_DIM_GET_RSP [PHD_OXI_DIM_GET_RSP_SIZE] = {
0xE7, 0x00, / * APDU Choice Type (PrstApdu) * / 0x00, 0x6F, / * CHOICE.length = 111 * / 0x00, 0x6D, / * OCTET STRING.length = 109 * / /
0x00, 0x02, / * kpọọ-id = 0x0002 (gosipụtara site na arịrịọ) * /
0x02, 0x03, / * CHOICE (Remote Operation Response | Nweta) * /
0x00, 0x67, / * CHOICE.na-agbaso = 103 * /
0x00, 0x00, / * aka = 0 (MDS ihe) * /
0x00, 0x06, / * àgwà-list.count = 6 * /
0x00, 0x61, / * àgwà-list.length = 97 * /
0x0A, 0x5A, / * àgwà id = MDC_ATTR_SYS_TYPE_SPEC_LIST * /
0x00, 0x08, / * àgwà-uru.length = 8 * /
0x00, 0x01, / * TypeVerList gụọ = 1 * /
0x00, 0x04, / * TypeVerList ogologo = 4 * /
0x10, 0x04, /* ụdị = MDC_DEV_SPEC_PROFILE_PULS_OXIM * /
0x00, 0x01, / * mbipute = ver 1 nke iche iche * /
0x09, 0x28, / * àgwà-id = MDC_ATTR_ID_MODEL * /
0x00, 0x1B, / * àgwà-uru.length = 27 * /
0x00, 0x0A, 0x46, 0x72, / * eriri ogologo = 10 | Freescale (oghere) * /
0x65, 0x65, 0x73, 0x63, 0x61, 0x6C, 0x65, 0x20, 0x00, 0x0D, 'M', 'E', / * eriri ogologo = 13 | MED-SPO2 PHDC * /
'D', '-', 'S', 'P', 'O', '2', '', 'P', 'H', 'D', 'C', 0x09, 0x84, / * agwa -id = MDC_ATTR_SYS_ID * /
0x00, 0x0A, / * àgwà-uru.length = 10 * /
0x00, 0x08, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, / * octet eriri ogologo = 8 | EUI-64 * /
0x0a, 0x44, / * àgwà-id = MDC_ATTR_DEV_CONFIG_ID * /
0x00, 0x02, / * àgwà-uru.length = 2 * /
0x40, 0x04, / * dev-config-id = 16384 (agbatị-nhazi-mmalite) * /
0x09, 0x2D, ​​/ * àgwà-id = MDC_ATTR_ID_PROD_SPECN * /
0x00, 0x12, / * àgwà-uru.length = 18 * /
0x00, 0x01, / * ProductionSpec.count = 1 * /
0x00, 0x0E, / * ProductionSpec.length = 14 * /
0x00, 0x01, / * ProdSpecEntry.spec-type = 1 (nọmba serial) * /
0x00, 0x00, / * ProdSpecEntry.comonye-id = 0 * /
0x00, 0x08, 0x44, 0x45, / * eriri ogologo = 8 | prodSpecEntry.prod-spec = DE124567 * /
0x31, 0x32, 0x34, 0x35, 0x36, 0x37, 0x09, 0x87, / * attribute-id = MDC_ATTR_TIME_ABS * /
0x00, 0x08, / * àgwà-uru.length = 8 * /
0x20, 0x09, 0x06, 0x12, /* Oge zuru oke-Stamp=2009-06-12T12:05:0000*/
0x12, 0x05, 0x00, 0x00};
Na nke a exampOtú ọ dị, Agent na-akọwa na ọ bụ MDS dị ka a pulse oximeter, aha ụlọ ọrụ bụ "Freescale" na ngwaọrụ nlereanya bụ "MED-SPO2 PHDC".
Ozugbo onye nnọchi anya nọ na steeti arụ ọrụ, ọ nwere ike ịmalite ịkọ nha n'aka onye njikwa. A ga-ezigarịrị nha site na iji akụkọ emebere. Akụkọ ndị a ga-enwerịrị nha ahaziri dịka akụkọ nhazi MDS ezitere na mbụ. Maka example, na akụkọ nhazi anyị, onye nnọchi anya ahụ gosiri onye njikwa na ọ ga-eziga nha ọnụọgụ abụọ, uru SpO2 na ọnụ ahịa ọnụego pulse. Ihe MDS anyị rụpụtara dị ka ndị a:

MED-SPO2 nnọchite anya mmadụỌgụgụ 4. MED-SPO2 nnọchite anya mmadụ

/ * nha iji zipu * /
uint_8 USB_CONST PHD_OXI_DIM_DATA_TX [PHD_OXI_DIM_DATA_TX_SIZE] = {
0xE7, 0x00, / * APDU Choice Type (PrstApdu) * /
0x00, 0x36, /*CHOICE.nwanyị = 54 * /
0x00, 0x34, / * Ngwaọrụ STRING.length = 52 * /
0x12, 0x36, / * ịkpọbata-id = 0x1236 * /
0x01, 0x01, / * CHOICE (Remote Operation Call In | Nkwupụta Omume Akwadoro) * /
0x00, 0x2E, /*CHOIC. Ike = 46 * /
0x00, 0x00, / * obj-njikwa = 0 (MDS ihe) * /
0x00, 0x00, 0x00, 0x00, / * omume-oge = 0 * /
0x0D, 0x1D, / * omume-ụdị = MDC_NOTI_SCAN_REPORT_FIXED * /
0x00, 0x24, /*event-info.length = 36 * /
0xF0, 0x00, /*ScanReportInfoFixed.data-req-id = XNUMX
0xF000 * / 0x00, 0x00, /*ScanReportInfoFixed.scan-report-no = 0 * /
0x00, 0x02, / * ScanReportInfoFixed.obs-nyocha-fix.count = 2 * /
0x00, 0x1C, /*ScanReportInfoFixed.obs-scan-fixed.length = 28 * /
0x00, 0x01, /*ScanReportInfoFixed.obs-scan-fixed.value=0] .obj-handle = 1 * /
0x00, 0x0A, /*ScanReportInfoFixed.obs-scan-fixed.value=0]. obs-val-data.length = 10 * /
0x00, 0x61, / * Mfe-Nu-Echere-Uru = 97% SpO2 * /
0x20, 0x0B, 0x09, 0x23, /* Oge zuru oke-Stamp = 2011-09-23T10:05:0000*/
0x0A, 0x05, 0x00, 0x00, 0x00, 0x02, / * ScanReportInfoFixed.obs-i scanomi-fix.value [1] .obj-aka = 2 * /
0x00, 0x0A, / * ScanReportInfoFixed.obs-scan-fix.value [1]. obs-val-data.length = 10 * /
0x00, 0x4E, / * Mfe-Nu-Echere-Uru = 78 BPM * /
0x20, 0x0B, 0x09, 0x23, /* Oge zuru oke-Stamp = 2011-09-23T10:05:0000*/
0x0A, 0x05, 0x00, 0x00};
Na APDU a, Agent kọrọ ihe ọnụọgụ abụọ, 97 na 78. Achọpụtara 97 dị ka ihe ejiri aka 1 ka onye njikwa wee mara na nha a dabara na SpO2. Otu ihe ahụ dị na 78, nke a kọrọ dị ka ihe ejiri aka 2 ya mere Onye njikwa mara na nha a dabara na ọnụego pulse. Otu oge stamp n'ihi na nke ọ bụla n'ime nha ezipụkwara ka akọwara na mkpesa nhazi MDS.

Ogbugbu Ngwa na Microcontroller

Ogbugbu ngwa na microcontroller na-amalite mgbe a na-akpọ ọrụ TestApp_Task. A na-arụ ọrụ a n'ime akaghị aka na-enweghị njedebe ma na-enyocha ọnọdụ nke igwe steeti steeti mgbe niile.
Ọrụ TestApp_Task nwere obere steeti steeti na-ejikwa ọnọdụ nke ngwa ahụ. Na nke mbụ, ọ bụrụ na edepụtara ngwaọrụ ahụ nke ọma dị ka PHD, mgbanwe "mmemme" bụ APP_PHD_INITIALIZED. Ngwaọrụ na-ebido oge, na-enye onye ọrụ ohere ịhọrọ ihe MDS ha chọrọ maka mkpakọrịta ọ bụrụ na Onye Ọrụ nwere ihe karịrị otu MDS. Mgbe ngụ oge gụchara ọnụ ọgụgụ ya, ihe omume ga-agbanwe bụ APP_PHD_SELECT_TIMER_OFF. N'ime ikpe a
nkwupụta, a na-akpọ ọrụ PHD_Connect_To_Manager. Ọrụ a na-eziga arịrịọ Association nke akọwapụtara na file phd_device_spec.c wee malite usoro mkpakọrịta akọwara na mbụ. A na-edozi usoro mkpakọrịta niile na-akpaghị aka site na iji ọrụ dị na ya file phd_com_model.c ma ọ na-ewe APDU niile achọrọ akọwapụtara na mbụ file phd_device_spec.c iji mechaa mkpakọrịta. Nke a na-enyere ndị mmepe aka ilekwasị anya na ngwa ha na-echefu ngwa ngwa niile metụtara nkwukọrịta PHD.
A na-akpọ ọrụ SpO2_PeriodicTask site n'oge ruo n'oge n'ime ọrụ TestApp_Task. Ọrụ a na-ejide usu oximeter n'onwe ya. Ọ na-achịkwa akụkụ ndị achọrọ maka njikwa MED-SPO2 ma nweta nha SpO2 na ọnụọgụ. Enwere ike ịchọta ozi gbasara omume nke ọrụ a na ntinye akwụkwọ AN4327 Pulse Oximeter Fundamentals and Design. Ihe ngosi a na-anọchite anya ọrụ TestApp_Task.

Ihe ngosi TestApp_TaskỌgụgụ 5. TestApp_Task na-ese eserese

N'ime oge a na-arụ ọrụ SpO2, a na-emelite usoro SpO2 na usu ọnụego mgbe niile. Na mbido ngwa SpO2, e kere otu oge nke abụọ. A na-eme ka ngụ oge a n'ọrụ ka oge ọbụla a na-agụta ma bidogharịa maka nke abụọ. Mgbe etinyere oge a, ọ na-arụ ọrụ ahụ Send_PHDC_Measurements. Ọrụ a na-agụ ọtụtụ sekọnd gafere, na mgbe ọ chọpụtara na ọnụọgụ nke abụọ gafere bụ otu ihe akọwapụtara na SPO2_PHDC_UPDATE_PERIOD, ọ na-akpọ ọrụ PHD_Send_Measurements_to_Manager.
Ọrụ PHD_Send_Measurements_to_Manager na-emelite akụkọ a kapịrị ọnụ nke akọwapụtara na file phd_devicespec.c nwere nha kacha ọhụrụ nke arụrụ ọrụ oge SpO2 were. Nkeji nkeji iri ọ bụla, a na-eziga usoro nha ọhụrụ yana Oge zuru oke Stamp na-abawanye na otu nkeji. Onye njikwa wee were nha ndị ahụ wee gosi ha na GUI ya.

Na-agba ọsọ ngosi

Instructionsgbaso ntuziaka ga-eduzi gị na mgbakọ, nbudata ngwanrọ na ịgba ọsọ nke ngosi.

Akụrụngwa Set

Iji kpokọta demo, ị ga-achọ akụkụ ndị a.

Aha AchọrọNyocha 6. Achọrọ Aha

Boardlọ TWR-K52N512 na osisi TWR-SER chọrọ ịgbanwe nhazi nke mbụ iji rụọ ọrụ. Jide n'aka na nhazi usoro nke mbadamba ndị a dị ka nke dị n'okpuru.
Isiokwu 1. TWR-SER Jumper nhazi

Jumper

Ọnọdụ

J10 1-2
J16 3-4
J2 1-2

Isiokwu 2. TWR-K53N512 nhazi Jumper

Jumper

Ọnọdụ

J1 Mepee
J3 Mepee
J4 2-3
J5 Mepee
J6 Ejikọtara
J7 Ejikọtara
J11 1-2
J12 Mepee
J14 Mepee
J15 Ejikọtara
J16 1-2
J17 Ejikọtara
J18 Ejikọtara
J20 Mepee
J21 Ejikọtara
J22 Mepee
J24 1-2
J25 Mepee
J26 Mepee
J28 Mepee
J29 Ejikọtara
J32 1-2
J33 1-2
J34 Mepee
Na-agbakọta demo

Stepsgbaso usoro ga-eduzi gị na nchịkọta mgbakọ.
1. Were bọọdụ TWR-K53N512 na bọọdụ Primary Elevator. Jikọọ akụkụ nke bọọdụ TWR-K53N512 akara dị ka "Primary" na otu oghere dị na bọọdụ Primary Elevator.

Chịkọta TWR-K53N512Nyocha 7. Asschịkọta TWR-K53N512

2. Ugbu a, were mbadamba TWR-SER. Jikọọ akụkụ nke TWR-SER akara dị ka isi na otu n'ime oghere ndị dị na bọọdụ Elevator Primary.

Chịkọta TWR-SERNyocha 8. embchịkọta TWR-SER

3. Were bọọdụ nke Secondary Elevator. Jikọọ akụkụ nke mbadamba TWR-SER na TWR-K53N512 akara dị ka "Secondary" na oghere dị iche na bọọdụ Elevator Secondary.

Gbakọta Elevator nke abụọỌgụgụ 9. embgbakọta Nke abụọ Igwe Mbuli

4. Were bọọdụ MED-SPO2. Jikọọ mkpọ ahụ na bọọdụ MED-SPO2 na njikọ ahụike na bọọdụ TWR- K53N512. A ga-enyerịrị ọnụọgụ ntụtụ na MED-SPO2 mbadamba ihe ntanetị na bọọdụ TWR- K53N512 (lee foto dị n'okpuru).

Analog n'ihu ọgwụgwụ pụrụ isi chọtaỌgụgụ 10. Analog n'ihu ọgwụgwụ pụrụ isi chọta

5. Jikọọ ihe mmetụta pulsim oximeter na njikọ DB9 na bọọdụ MED-SPO2.

Pulse oximeter ihe ntinye ihe mmetụtaỌgụgụ 11. Pulse oximeter ihe ntinye ego

Ngosipụta ngosi

1. Budata ma wụnye HealthLink®. Enwere ike ịchọta ya na Lamprey netwọk web ibe www.lnihealth.com.

Ahụike LNI web ibeỌgụgụ 12. LNI Health web ibe

2. Jikọọ eriri USB A na mini B na kọmputa gaa na ọdụ ụgbọ mmiri TWR-SER.

Ijikọ USB na TWR-SERNyocha 13. Ijikọ USB na TWR-SER

3. Ọ bụrụ na windo na-arịọ maka ndị ọkwọ ụgbọala USB PHDC na-apụta, họrọ nhọrọ "Wụnye ndị ọkwọ ụgbọala na-akpaghị aka". Edepụtaghachiri ndị ọkwọ ụgbọala na folda sistemụ ahụ n'oge ememme HealthLink®.

Wụnye ndị ọkwọ ụgbọala PHDC

Ọgụgụ 14. ingwụnye ndị ọkwọ ụgbọ ala PHDC

4. Mezuo mmemme HealthLink®. Ọ bụrụ na ọ bụ oge mbụ ị na-eji usoro ihe omume ọ ga-arịọ gị ka ịmepụta otu akaụntụ. Mepụta akaụntụ ọrụ na-ahọpụta gị ike data na-eweta (ie Google Health, Microsoft HealthVault, wdg…). Ọ bụrụ na ịnweghị onye na-eweta data ahụike ị nwere ike iji nhọrọ “Chekwa na disk”.

Ịmepụta akaụntụNyocha 15. Creatmepụta akaụntụ

5. Debe ihe mmetụta ahịhịa ahụ bụ oximeter na mkpịsị aka dị ka egosiri na onyonyo dị n'okpuru.

Mkpịsị aka mmetụta pụrụ isi chọta

Ọgụgụ 16. Mkpịsị aka mmetụta pụrụ isi chọta

6. Mgbe akaụntụ na-arụ ọrụ, usoro ihe omume HealthLink® ga-amata sistemụ ụlọ elu ahụ dị ka ngwaọrụ pulse oximeter. A ga-atụ nha ọ bụla sekọnd iri.

Demo na-agba ọsọ

Nyocha 17. Demo na-agba ọsọ

Ntụaka

• Mmepe nke usu oximeter dabeere na ngwa ndetu "AN4327 usu Oximeter Fundamentals na Kere"
• Akụrụngwa dabere na USB Stack nwere PHDC 3.0 nke enwere ike ịhụ na Freescale web ibe https://www.freescale.com.
• Usoro nkwukọrịta dabere na ọkọlọtọ ISO / IEEE 11073-20601 Nkwukọrịta Ngwaọrụ Ahụike Nke Onwe: Usoro Protocols Kachasị Mma.
• E mepụtara PHD usu oximeter nkwukọrịta protocol mmejuputa ya na IEEE 11073-10404 Personal Health Device Communications: Ngwaọrụ Specialization-Pulse Oximeter
• Emepụtara ngwanrọ a site na iji IAR 6.3. Enwere ike ibudata ya na IAR web ibe https://www.iar.com
• GUI eji na mmepe ngosi ngosi a bụ HealthLink® GUI sitere na Lamprey netwọk na enwere ike ibudata ya na LNI web ibe https://www.lnihealth.com

Mkpebi

Klaasị ngwaọrụ ahụike ahụike na-enye ohere otu mmekọrịta n'etiti obere ngwaọrụ ọgwụ. Freescale na-enye ngwọta njikọta nke na-enyere ndị mmepe aka na okike nke ngwaọrụ nwere ike iji nkwukọrịta kpọtụrụ ụkpụrụ dịka IEEE 11073-20601, na-eme ka ha bụrụ nhọrọ ka mma n'ahịa.
Otu esi erute anyi:
Ibe ụlọ: www.freescale.com
Web Nkwado: http://www.freescale.com/support
USA / Europe ma ọ bụ ebe edepụtaghị:
Semiconductor Freescale
Informationlọ Ọrụ Na-ahụ Maka Nka na ụzụ, EL516 2100
East Elliot Okporo
Tempe, Arizona 85284 +1-800-521-6274 ma ọ bụ +1-480-768-2130
www.freescale.com/support
Europe, Middle East, na Africa:
Freescale Halbleiter Deutschland GmbH
Nka na ụzụ Ozi
Nyocha 7
81829 Muenchen, Germany
+ 44 1296 380 456 (Bekee)
+ 46 8 52200080 (Bekee)
+ 49 89 92103 559 (German)
+ 33 1 69 35 48 48 (French)
www.freescale.com/support
Japan:
Ụgwọ nke ụlọ ọrụ Freescale Semiconductor Japan Ltd.
Isi ụlọ ọrụ
COlọ ARCO 15F
1-8-1, Shimo-Meguro, Meguro-ku,
Tokyo 153-0064
Japan
0120 191014 ma ọ bụ +81 3 5437 9125 s
upport.japan@freescale.com
Asia / Pacific:
Friscale Semiconductor China Ltd.
Mgbanwe 23lọ XNUMXF
Nke 118 Jianguo okporo
Mpaghara Chaoyang
Beijing 100022
China
+86 10 5879 8000
nkwado.asia@freescale.com
A na-enye ozi dị na akwụkwọ a naanị iji nyere ndị sistemụ na ndị na-eme ihe ngwanrọ aka iji ngwaahịa Freescale Semiconductors. Enweghị ikike ikikere ngosiputa awara awara ma ọ bụ nke ekwuputara ebe a iji chepụta ma ọ bụ mepụta ihe ọ bụla njikọta sekit ma ọ bụ njikọta njikọta dabere na ozi dị na akwụkwọ a.
Semesonductor nọ na Friscale nwere ikike ịgbanwe n’enweghị ọkwa ọzọ n’ahịa ọ bụla ebe a. Semiconductor Freescale anaghị enye ikike, nnọchite anya, ma ọ bụ nkwa maka ojiji nke ngwaahịa ya maka ebumnuche ọ bụla, Freescale Semiconductor anaghịkwa eche ọrụ ọ bụla sitere na ngwa ma ọ bụ jiri ngwaahịa ọ bụla ma ọ bụ sekit, ma na-ekwusi ọrụ ọ bụla ike, gụnyere na-enweghị njedebe. mmebi ma ọ bụ ihe ọghọm. Nchịkọta "parametersdị" nke enwere ike ịnye na mpempe data Freescale Semiconductor na / ma ọ bụ nkọwa nwere ike ma dịgasị iche na ngwa dị iche iche ma arụmọrụ arụmọrụ nwere ike ịdị iche na oge. All ọrụ kwa, gụnyere “Ahụkarị”, ga-irè n'ihi na onye ọ bụla ahịa ngwa ahịa ahịa oru ọkachamara. Semiconductor Freescale anaghị enyefe ikikere ọ bụla n'okpuru ikike ikikere ya ma ọ bụ ikike ndị ọzọ. Emeghị ngwaahịa Semiconductor nke Freescale, ezubere, ma ọ bụ nye ikike maka ojiji dị ka ihe akụrụngwa n'ime sistemụ emere maka ịwa ahụ n'ime ahụ, ma ọ bụ ngwa ndị ọzọ ezubere iji kwado ma ọ bụ kwado ndụ, ma ọ bụ maka ngwa ọ bụla ọzọ nke ọdịda nke ngwaahịa Freescale Semiconductor nwere ike ịmepụta ọnọdụ ebe mmerụ onwe onye ma ọ bụ ọnwụ nwere ike ime. Kwesịrị ịzụta ma ọ bụ jiri ngwaahịa Semiconductor Freescale maka ngwa ọ bụla a na-atụghị anya ya ma ọ bụ nke enwetaghị ikike, Onye na-azụ ihe ga-akwụ ụgwọ Freescale Semiconductor na ndị isi ya, ndị ọrụ ya, ndị enyemaka, ndị mmekọ, na ndị na-ekesa ya enweghị nsogbu megide ebubo niile, ụgwọ, mmebi, na mmefu, yana ụgwọ ọka iwu kwesịrị ekwesị site na, ma ọ bụ n'ụzọ na-enweghị isi, nkwupụta ọ bụla nke mmerụ ahụ ma ọ bụ ọnwụ nke metụtara ụdị ojiji a na-atụghị anya ya ma ọ bụ na-enwetaghị ikike, ọbụlagodi na nkwupụta dị otú ahụ na-ebo ebubo na Freescale Semiconductor bụ nleghara anya banyere imepụta ma ọ bụ imepụta akụkụ ahụ.
Ntughari RoHS na / ma ọ bụ Pb na-enweghị nsụgharị nke ngwaahịa Freescale nwere arụmọrụ na njirimara eletriki dịka ndị na-abụghị RoHS-mkpesa na / ma ọ bụ ndị na-abụghị Pb na-enweghị ego.
Maka ozi ndị ọzọ, hụ http://www.freescale.com ma ọ bụ kpọtụrụ onye na-ere ahịa Freescale gị.
Maka ozi na Freescale's Environmental Products program, gaa na http://www.freescale.com/epp.
Freescale ™ na Freescale logo bụ ụghalaahịa nke Freescale Semiconductor, Inc.
Ngwaahịa ma ọ bụ ọrụ ọrụ ndị ọzọ niile bụ nke ndị nwe ha.
F 2012 Freescale Semiconductor, Inc.
NXP usu Oximeter na iji USB PHDC akwukwọ ntuziaka - Download [kachasị]
NXP usu Oximeter na iji USB PHDC akwukwọ ntuziaka - Budata

Ntụaka

Hapụ ikwu

Agaghị ebipụta adreesị ozi-e gị. Akara mpaghara achọrọ akara *