چهارشنبه, ۵ اردیبهشت, ۱۴۰۳ / 24 April, 2024
مجله ویستا

زیر بنای کالیبراسیون یک دستگاه حیاتی


زیر بنای کالیبراسیون یک دستگاه حیاتی
امروزه یكی از مباحث بسیار رایج در مهندسی پزشكی، سنجش صحت دستگاه‌های پزشكی یا به اصطلاح فنی آن كالیبراسیون‎(Calibration) ‎‏ است. هر روزه روش‌ها و فانتوم‌ها و شبیه سازهای سخت افزاری و نرم افزاری با نسخه‌های جدیدتر در عرصه فناوری ظهور می‌كند و این امكان را فراهم می‌نماید كه پزشك با اطمینان بیشتری با دستگاه كار كند و در تشخیص خود احتمالات كمتری را به كار بندد.‏
یكی از این دستگاه‌های مهم و حساس الكتروانسفالوگرام یا ‏EEG‏ هم ماهیت سیگنال و هم مغز به عنوان ارگان مربوط و نیز نحوه ثبت آن دقت فراوانی را ایجاب می‌كند. چرا كه تشخیص نابجا عوارض جبران ناپذیری را به همراه دارد؛ از قبیل اینكه داروهایی تجویز می‌شود كه با بیماری اصلی فرد منافات دارد و منجر به بیماری‌های روانی جدید در فرد می‌گردد. با توجه به همه این عوارض شبیه ساز یا سیمولاتور ‏‎(SIMULATOR)‎‏ دستگاه ‏EEG‏ را به عنوان ابزاری سودمند جهت رفع خطا‌های احتمالی و اطمینان از صحت دستگاه دانشكده مهندسی پزشكی، دانشگاه آزاد اسلامی واحد علوم و تحقیقات به مرحله طراحی و ساخت رسیده است.
● اطلاعات فنی
این دستگاه‎ ‎مجموعه‌ای از میكروكنترلر و المان‌های منطقی است كه در حالت دیجیتال، وظیفه ی گرفتن سیگنال به‌وسیله پورت سریال از كامپیوتر مبدأ و ذخیره آن در حافظه ‏ROM‏ و ارسال مجدد آن به كامپیوتر مقصد جهت اطلاع از شكل صحیح سیگنال در حافظه و نیز ارائه به افراد تحت آموزش توسط اساتید و مربیان و نیز قرار دادن همزمان سیگنال‌های آنالوگ در هشت كانال با قابلیت انتخاب از سه بانك اطلاعاتی، جهت كالیبراسیون دستگاه ‏EEG‏ و نمایش روی صفحه آن را بر عهده دارد. یعنی به دو صورت آنالوگ و دیجیتال می‌توان اطلاعات رادر خروجی نمایش داد.
یكی از توانمندی‌های این سامانه حفظ كردن سیگنال‌ها در حافظه‎(FLASH ROM) ‎‏ و سازماندهی آن توسط میكروكنترلر است. بدین ترتیب امكان ایجاد ‏‎ ‎بانك سیگنال یا مجموعه ی سیگنال‌ها را در هر كدام از بلوك‌های حافظه یا تغییر آن وجود دارد. معماری حافظه نیز به گونه ای طراحی شده است تا حجم سخت افزار و نرم افزار آن كمتر شود تا حافظه برنامه ‏‎(Program Memory)‎‏ كمتری به آن اختصاص یابد و بتوان با میكروكنترلر رایجتر و ارزانتر با سهولت بیشتری كار كرد. البته ساختار حافظه به تفصیل در ادامه ی بحث ارائه می‌گردد.
اگر وضعییت دیجیتال لحاظ گردد، میكرو تمامی اطلاعات یك بانك سیگنال انتخابی را به پورت سریال با نرخ باود‏‎(BOUD RATE)‎‏ ۹۶۰۰ ارسال می‌نماید كه توسط نرم افزار ‏MATLAB ‎‏ كامپیوتر دریافت می‌شود. این نرم افزار اطلاعات را در یك ماتریس ۱*۶۴۰۰۰ می‌ریزد كه می‌بایست آن را با برنامه ای به ۸ ماتریس ۸۰۰۰ تایی با همان آرایش اولیه تبدیل نمود. پس از آن ۸ كانال نمایش داده خواهد شد كه البته قابلیت ذخیره هر كدام لحاظ شده است.
در این سامانه برای ارسال و دریافت اطلاعات به كامپیوتر از پورت سریال استفاده شده است. برای ایجاد ارتباط سریال در كامپیوتر از نرم افزار ‏MATLAB‏ با نسخه ‏‎۷.۰.۴‎‏ استفاده شده كه به آن پرداخته خواهد شد. حالت‌ها یا مدهای‏‎(MODE) ‎‏ كار با دستگاه كه توسط صفحه كلید‏‎(KEYPAD)‎‏ در اختیار كاربر قرار می‌گیرد نیز امكان قرار دادن سیمولاتور در وضعیت‌های دلخواه را فراهم می‌نماید.
این دستگاه با یك منبع پایدار ‏‎۰.۱‎‏ آمپر جریان كشی دارد و با توجه به ولتاژ مصرفی و طبق فرمول توان انتظار می‌رود كه ‏VI=۵*۱۰۰=۵۰۰mW‏ توان منبع ‏‎۵v‎‏ و‏‎ VI=۱۰*۱۰=۱۰۰mW‎‏ توان منبع ‏‎۱۰v‎‏ باشد لذا توان مصرفی كل دستگاه ‏‎۶۰۰mW‎‏ خواهد بود.
‏● بلوك دیاگرام طرح
همانطور كه در سیم است بلوك سخت افزاری مشاهده می‌شود داده‌ها از میكرو توسط پورت سریال دریافت شده و در یك حافظه موقت ‏RAM‏ ذخیره می‌گردد. به‌دلیل عدم گنجایش ‏RAM‏ داخل میكرو از ‏RAM‏ بیرونی استفاده شده است كه البته امكان افزایش داده بیش از ۶۴۰۰۰ را داشته و نیز قابلیت دریافت هر سه بانك سیگنال به صورت یكجا را نیز داراست. پس از آن میكروكنترلر، بلوك‌های ۲۵۶ بایتی را از ‏RAM‏ برداشته و در ‏ROM‏ ذخیره می‌سازد. این دو مرحله آخر به جهت نحوه خاص نوشتن در حافظه ‏FLASH ROM‏ است. چرا كه در هر بار تنها می‌شود از قطعات ۲۵۶ بایتی در حافظه استفاده كرد. دلیل استفاده از حافظه موقت یا ‏STACK‏ با حجم بیشتر از ۲۵۶ بایت این است كه در صورت فقدان آن بایستی در هر بار بسته‌های ۲۵۶ بایتی از پورت سریال دریافت كرده و پس از یك وقفه جهت نوشتن آن در حافظه دائمی و خالی كردن ‏STACK‏ دوباره كار گرفتن اطلاعات از سر گرفته شود. برای حافظه دائمی از حافظه سریع استفاده شده كه نوعی حافظه نیمه هادی با زمان دستیابی ‏‎۱۰۰ns‎‏ در مقایسه با زمان دستیابی چند ده میلی ثانیه در دیسك سخت است.
سیكل برنامه نویسی،پاك كردن عبارت است از تعداد دفعاتی كه تراشه قبل از استفاده شدن می‌تواند برنامه نویسی یا پاك شود. در حال حاضر دوره ذكر شده،‎۱۰۰۰۰ ‎بار برای حافظه سریع ‏EEPROMو‎۱۰۰۰‎‏ بار برای ‏UV-EPROM‏( قابل برنامه نویسی و پاك كردن با اشعه ماورا بنفش) و برای ‏RAM‏ و دیسك‌ها مقدارش بی‌نهایت است.
اكنون حافظه بارگذاری شده و قابلیت بهره برداری در هر كدام از مدهای انتخابی كاربر را دارد. در این دستگاه دو وضعیت آنالوگ جهت كالیبراسیون و دیجیتال جهت آموزش تعبیه شده است. اگر دستگاه در وضعیت آنالوگ باشد، اطلاعات توسط میكرو از حافظه به بافرها منتقل می‌شود تا پس از آنالوگ شدن توسط مبدل ‏DAC‏ به خروجی ارسال شود. دلیل استفاده از بافرها، همزمانی و سنكرون بودن ‏‎(SYNCHRONOUS)‎‏ ارسال ۸ كانال به خروجی به صورت آنالوگ است كه این عمل با فركانس‎۳۰۰HZ‏ انجام می‌گیرد. از آنجا كه سیگنالهای دریافتی از ‏DAC‏ چاپ شده و منقطع است برای رفع آن از‏‎ ‎فیلترهای پایین گذر‎ ‎با فركانس قطع ‏HZ‏۱۵۰‏‎ ‎استفاده شده است. این تناسب فركانسها طبق قضیه نایكوییست انتخاب شده است.
● ساختار حافظه‎(MEMORY MAP)‎‏ ‏
همانطور كه قبلا" بیان شد، حافظه مورد استفاده۲۵۶ كیلو بایت حجم دارد كه اكنون به تعداد نمونه‌ها در هر كانال و محاسبات مربوط به آنها پرداخته می‌شود:‏
▪ تعداد نمونه در هر كانال: ۸۰۰۰عدد،
▪ تعداد كانال:۸‏
▪ تعداد نمونه در هر بانك: ۸۰۰۰*۸=۶۴۰۰۰‏.‏
لذا فضای اشغالی برای هر بانك سیگنال ۶۴۰۰۰ بایت، یعنی یك بلوك از حافظه ‏ROM‏ است. بنابراین یك بلوك از حافظه را به ۸ قسمت تقسیم شده است.‏
دو روش برای بارگذاری حافظه وجود دارد كه در نهایت یكی از آن دو با ساختار بهتر گزینش می‌گردد. در روش نخست برای بارگذاری حافظه می‌توان اطلاعات مربوط به هر كانال را پشت سر هم گذاشت و سپس به كانال بعدی رفت. در این صورت با خواندن هر بانك یك ماتریس ۸*۸۰۰۰ (بایت) داریم كه باید برای پیمایش آن ابتدا ۸ بیت(۱بایت) از سطر اول- ستون اول و سپس ۸ بیت بعدی از سطر دوم- ستون اول و ... را بخوانیم كه نیاز به یك نشانگر داریم كه با آدرس‌دهیlabel first‏ (برچسب اولین كانال) ابتدا آن را با ۸ بیت اول یك كانال پر كرده و سپس هر بار برای پیمایش در ستون اول و ردكردن مابقی عناصر آن را با ۸۰۰۰ جمع كرده تا به ۸ بیت اول از كانال دوم اشاره كند و بدین ترتیب ادامه یابد. شایان ذكر است كه رد كردن ۸۰۰۰ تا بلافاصله پس از اولی به دلیل ارسال همزمان ۸ كانال به صورت آنالوگ در خروجی است.
این عمل باعث حجیم شدن دستورالعمل‌های برنامه شده و در ضمن بعضی از محدودیت‌های دستورالعملی میكرو از این امر ممانعت می‌كند. در ضمن از آنجا كه یكی از قابلیتهای این سیملاتور امكان انتخاب دلخواه هر كدام از كانالهاست، به روش مذكور امكان‌پذیر نیست.
در روش دوم قبل از ارسال اطلاعات به میكرو تمام داده‌های كانال‌ها پشت سرهم در لابه‌لای یكدیگر به روشی مرتب و اصولی چیده می‌شود و سپس ماتریس را به میكرو از طریق پورت سریال منتقل می‌نماییم. بدین ترتیب هنگامی كه همه كانالها را به بیرون بخواهیم منتقل می‌شود. تنها با افزودن یك واحد به نشانگر این عمل امكان پذیر است و قابلیت همزمانی ارسال كانالها را هم فراهم می‌نماید.
از طرف دیگر حجم برنامه هم كمتر شده و دیگر برای ارسال ۸ كانال به ثباتهای واسط برای شمارش نیاز نیست. در ضمن هنگامی كه دو كانال یا بیشتر انتخاب شود، از طریق محاسبه فاصله اعدادی كه به هر كانال اختصاص داده می‌شود، راحتتر می‌توان رجیسترهایی را به عنوان شمارنده انتخاب كرده و این شمارش صورت پذیرفته و اطلاعات به طور همزمان به بیرون منتقل شود. این سامانه تا انتخاب چهار كانال به صورت تصادفی را به كاربر می‌دهد كه البته می‌توان آن تا ۸ كانال افزایش داد اما ضرورتی ندارد.‏● ماهیت سیگنالها
ابتدا می‌بایست پردازش‌هایی را روی سیگنالهای ۸ كانال انجام گیرد و سیگنالها را با فرمت ‏TXT‏ در یك ماتریس۸*۸۰۰۰‏‎ ‎‏ قرار داده شود. هر سیگنال در یك ستون ماتریس قرار می‌گیرد و برای ساخت ماتریس نهایی باید سطرها را به ترتیب در یك ماتریس ۱*۶۴۰۰۰‏‎ ‎‏ قرار گیرد و در صورت نیاز نرمالیزه كردن را در هر كدام از مراحل و ترجیحا" در قسمت آخر لحاظ نم نرمالیزه بین مقادیر ۰ تا۲۵۵ صورت می‌پذیرد. مطمئنا" در هنگام دریافت این ۶۴۰۰۰ عدد در كامپیوتر مقصد هم باید مراحل مذكور را به طریق معكوس دنبال كرد.
تمام برنامه‌ها در ‏GUI‏ تعبیه شده و كاربر را از پیچیدگی‌های محیط برنامه نویسی دور كرده است. دو نكته بسیار مهم در اجرای این بسته نرم افزاری اهمیت دارد. در صفحه اصلی آن دو كلیدSEND , RECEIVE ‎‏ وجود دارد كه دو عملكرد بسیار مهم ارتباط را فراهم می‌كند. جهت ارسال اطلاعات از ‏PC‏ به سیمولاتور، ابتدا باید دستگاه را در وضعیت ‏LD(LOAD)‎‏ قرار گیرد تا همه اطلاعات ارسالی ‏PC‏ را دریافت نماید. این عكس عمل گرفتن داده‌ها توسط كامپیوتر است كه در آن ابتدا باید برنامه نرم افزاری ‏RECEIVE‏ فعال گردد و سپس دستگاه در وضعیت ‏PC‏ قرار گیرد تا همه داده‌های ارسالی دستگاه توسط ‏PC‏ دریافت شده و داده‌ای گم نشود.
شایان ذكر است كه مدت زمان دریافت و ارسال دیجیتال سیگنالها با میزان ۹۶۰۰‏boundrate= ‎‏ در حدود۵۴ ثانیه طول می‌كشد كه در مقایسه با بخش آنالوگ بسیار سریع تر است.(چراكه در حالت آنالوگ فركانس‏‎ hz‎‏ ۱۵۰ لحاظ شده است.)
بعد از طی مراحل مذكور با تعبیه كلیدهایی در ‏GUI‏ برنامه‌های مذكور فراخوانی و اجرا می‌شود.
● نرم افزار واسط گرافیكیGUI
این برنامه در سه پنجره طراحی شده است كه كاربر وارد پنجره اصلی(اولین تصویر سمت چپ) می‌شود و با توجه به هدف مورد نظر یكی را انتخاب می‌كند.‏‎ ‎در پنجره اصلی با انتخاب آیكون اول به نام ‏communicate‏ كاربر می‌تواند از طریق پنجره‌ای كه باز می‌شود، برنامه‌های مربوط به پورت سریال اعم از ارسال یا دریافت سیگنال را اجرا كندآیكون ‏Build‏ برای ایجاد یك بانك سیگنال در كامپیوتر، تعبیه شده است و از ‏Help‏ جهت آشنا شدن با نحوه كار دستگاه و نرم افزار بهره برد.
▪ " آزمونهای صحت ‏EEG SIM‏"‏
از آنجا كه عملكرد این دستگاه بسیار حساس است و خود به عنوان ابزاری در جهت كالیبراسیون به كار می‌رود، لذا اطمینان از صحت دستگاه بسیار مهم است. برای این منظور لازم است تك تك قطعات دستگاه تست شود. برای تست گام به گام دستگاه، ابتدا می‌بایست آن را به چند جزء برای آزمودن تقسیم كرد‎.
‎اطمینان از صحت موارد زیر ضروری است:‏
▪ میكروكنترلر، حافظه ‏RAM، حافظه ‏ROM، كل قسمت آنالوگ، اتصال صفحه كلید و اتصال برنامه و پورت سریال.‏
جهت اطمینان از عملكرد هر سیستم اعم از سخت افزار و نرم افزار‏‎ ‎دو روش برای آزمون وجود دارد. روش اول، تحلیل كل به جزء و دیگر روش جزء به كل است. این دو روش علاوه بر اینكه برای تست دستگاه ‏SIMULATOR‏ برای مراحل كالیبراسیون ‏EEG‏ هم به كار رود.‏
در روش كل به جزء كه مبنای اصلی این سامانه است، از بزرگترین محدوده بررسی آغاز می‌شود و تا كوچكترین مرحله كه تست خود میكروكنترلر است، ادامه می‌یابد. از آنجا كه به طور تجربی مشخص شده است؛ بیشتر خطاها در بلوكهای نهایی رخ می‌دهد، از نظر هزینه مقرون به صرفه تر است.این اعمال توسط متخصص مربوطه صورت می‌گیرد و در دسترس كاربر قرار داده نمی شود چرا كه نتایج آن فقط برای متخصص قابل استفاده است.
كلی‌ترین بلوكی كه در این سامانه وجود دارد، قسمت آنالوگ است كه بیشتر نقصها در این محدوده رخ می‌دهد. برای آزمودن آن می‌بایست از یك اسیلوسكوپ آزمایشگاه استفاده نمود. برای این كار یك بانك سیگنال را كه بارگذاری آن توسط سازنده صورت می‌گیرد و حاوی سیگنالهای نمونه است، اجرا می‌شود. یك محدوده با وسعت كمتر به این ترتیب است كه برای اطمینان از صحت عملكرد میكرو و‏‎ ‎‏ ‏‎ PPI‎‏ و حافظه‌ها، یك مجموعه برنامه‌های زنجیروار اجرا می‌گردد كه در صورت بروز هر گونه اشكال خروجی ناهماهنگ با انتظار را در پورت‎ B ‎نمایان می‌كند.
بررسی قسمت آنالوگ و دیجیتال، به صورت موازی انجام می‌گیرد. به عبارت دیگر با حدس و صلاحدید متخصص مبنی بر اشكال در هر یك انتخاب می‌شود. چنانچه اعتبار اطلاعات از جانب ‏PC‏ و یا ارتباط آن با سامانه نا صحیح بود، پیشنهاد می‌شود كه از ‏Hyper terminal‏ كامپیوتر، بدون استفاده از برنامه ‏Matlab‏ جهت برطرف نمودن مشكل نرم افزاری كمك گرفته می‌شود.‏
▪برآورد اقتصادی:
هزینه این دستگاه برای نمونه آزمایشی ۸۰۰۰۰ تومان برآورد شده كه البته هزینه‌های مربوط به ساخت به آن افزوده می‌شود و این مقدار در نهایت در مقابل هزینه خود دستگاه و سایر هزینه‌ها بسیار ناچیز است. علاوه بر آنكه این دستگاه قابلیت تعویض سیگنالها را برای آموزش به همراه دارد.
● پیشنهادهایی جهت ارتقا در آینده
یكی از این نكات مهم ارتقاء سرعت ارسال و دریافت اطلاعات با كامپیوتر از طریق به‌كارگیری پورت ‏USB‏ به جای سریال است. اما به دلیل محدودیت زمانی قابل امكان پیاده‌سازی آن با وجود اهمیت فراوان این موضوع فراهم نشد.‏
نكته مهم دیگر كاستن ابعاد دستگاه در حد بسیار كوچك است كه قابلیت جابجایی و كم جا بودن آن را تضمین می‌كرد. لذا باید به دنبال تراشه‌هایی با حجم كوچكتر و احیانا" بوردهای دو طبقه و مینیاتوری بود كه از حوصله و هزینه سامانه دانشجویی خارج است.
نكته آخر كه بسیار مهم است استفاده از منبع تغذیه قابل شارژ مانند باتری‌های لیتیومی در ابعاد كوچك كه مانند گوشی همراه، قابل شارژ كردن باشد دیگر به اتصال مداوم به برق شهر را نداشته باشد.
نویسنده:مهندس مرضیه انجم روز
MM_ANJOM@YAHOO.COM
منبع : مجله مهندسی پزشکی و تجهیزات آزمایشگاهی


همچنین مشاهده کنید