بخشی از مقاله

طراحی و پیاده سازی یک کارت مبدل آنالوگ به دیجیتال ۱۶ بیت

چکیده: در این مقاله مراحل طراحی یک کارت مبدل آنالوگ به دیجیتال با دقت ۱۶ بیت توسط IC AD676 بیان شده است. در پیاده سازی این کارت از تکنولوژی FPGA برای کنترل قسمت های دیجیتالی استفاده شده است. این کارت از طریق ISABuS ۸ بیتی با کامپیوتر در ارتباط می باشد.
کلمات کلیدی : A/D و فرکانسی نمونه برداری و مبدالی آنالوگ به دیجیتال
۱- مقدمه :
این برد، یک برد مبدل آنالوگ به دیجیتال با کیفیت و کارآیی بالا است که دارای ۱۶ بیت دقت عمل تبدیل بوده و ۴ کانال ورودی تفاضلی خود را با فرکانسی نمونهبرداری ۱۰ کیلوهرتز دیجیتایز می نماید. برای شروع عمل تبدیل و کاربر توانایی استفاده از نرم افزار را داراست و با استفاده از بیت (data Valid bit) که در داخل کارت تعبیه شده است کاربر می تواند از درست بودن اطلاعات دیجیتایز شده اطمینان حاصل کند(POlling) در این کارت از یک تقویت کنندهٔ تفاضلی با کیفیت خروجی بسیار بالا استفاده شده است که گین این تقویت کننده توسط یک Jumper در دو سطح ۱ و ۱۰ قابل تنظیم است. لذا با استفاده از این کارت می توان برای اندازه گیری ولتاژ ورودی در بازه های ورودی (۵+ و۵-) و (۰٫۵ + و ۰.۵ - ) استفاده کرد. این کارت در مصارف اتوماسیون صنعتی و کنترل پروسه و اندازه گیری خروجی های سنسورها می توان
استفاده کرد.
۲- معرفی پرتهای ورودی خروجی:

۳- نحوه عملکرد مدار: ۳- ۱- Reset کردن:
با انجام این عمل تمامی register های مدار به غیر از Control Word برابر 0 می شوند. همچنین مدار در وضعیت پایداری قرار می گیرد. برای انجام این عمل باید بیت مربوط به TeSet در COntrOl WOrd 1 شود.

۳ - ۲- کالیبراسیون (تنظیم اولیه): با انجام این عمل که باید با هر بار روشن شدن سیستم انجام شود عمل تنظیم و رفع OIISet در ADO76 در طیmS ۸۵ انجام می گیرد. برای انجام این عمل نخست باید بیت مربوط به CalmOde در Control Word می شود،

سپس با Outport کردن در Base AddreSSFl دستور آغاز کالیبراسیون به کارت داده می شود.تا پایان عمل کالیبراسیون بیت مربوط به CalmOde در COntTOl WOrd نباید تغییر کند و کاربر با چک کردن بیت CalSate در Status Register می تواند متوجه پایان کالیبراسیون شود :

در صورتیکه قبل از پایان کالیبراسیون COnLTOl WOrd تغییر کند، عمل کالیبراسیون موقتا متوقف می شود.(چون ورودی Clk به AD676 اعمال نمی شود لذا Clk pul Se های مورد نیاز برای اتمام کالیبراسیون از عملیات بعدی گرفته می شود. و اگر دستور بعدی COnVerSiOn باشد خروجی خوانده شده مقدار صحیحی نخواهد بود. : (conversion) Jay-Y-Y در طی این عمل تبدیل سیگنال آنالوگ به دیجیتال انجام می گیرد. در پایان عمل تبدیل بیت data Valid) dV) درStatuS Tegister ، 1 می شود و کاربر متوجه می شود data حاضر است و می تواند آن را بخواند و در صورت تمایل عمل تبدیل بعدی را اغاز کند

با خواندن بیت می شود و تا پایان عمل تبدیل بعدی 0 می ماند
۴- معرفی register های موجود در طرح: "register Jü..1A/DSS a. 3-e asšl, e 4S register : control word register –\-f بیت است که هم در آن می توان نوشت و هم از آن خواند(از طریق BaSe_AddreSSTO) . هر یک از بیتهای آن برای کاری در نظر گرفته شده اند که توضیح آن در زیر داده شده است

۱-۱-۴-reset : همانطور که در قسمت نحوهٔ reSet کردن آمده است این بیت برای SoftWare reSet در نظر گرفته شده است.
۲-۱-۴- Call : برای انجام عمل کالیبراسیون نخست بیت موسوم به CalmOde در COntrol WOTd باید 1 شود سپس دستور آغاز کالیبراسیون داده شود.
۳-۱-۴- ConV: برای انجام عمل تبدیل نخست بیت موسوم به COnVmOde در COntrol Word باید 1 شود سپس
دستور آغاز تبدیل داده شود.
۴- ۲- Channel Number : یک register ۲ بیت است که با نوشتن در (BaSe_AddreSST2)، مشخص می شود و مشخص می کند از کدام یک از کانالهای ورودی ، باید مقدار را خواند و تبدیل کرد:
SSSS Vuluv lV. T ۳-۴- Status register : این register ۳ بیتی برای اطلاع دادن به کاربر از وضعیت مدار طراحی شده است و کاربر با خواندن از (3+BaSe_AddreSS) می تواند به این register دسترسی پیدا کند. هر یک از بیت های این register|برای کاری در نظر گرفته شده اند:
۱-۳-۴-data Valid) dv) : بعد از پایان هر عمل تبدیل و حاضر شدن نتیجه این بیت 1 می شود.
۴--۲-۳- Error: اگر در COntrol Word هر دو بیت CalmOde و COnVmOde تواما 1 شود این بیت 1 می شود. در این حالت هیچ کاری در مدار انجام نمی شود.
۴- ۳-۳- Calstate: چون کاربر تا زمانی که عمل کالیبراسیون تمام نشده نباید COntrol WOTCl را تغییر دهد این بیت برای مشخص کردن زمان پایان کالیبراسیون در نظر گرفته شده است. در طول عمل کالیبراسیون این بیت 1 است.

۴-۴-(Data(LSB : یک register ۸ بیتی است که ۸ بیت پایین (LSB) نتیجهٔ عمل تبدیل در آن قرار دارد و کاربر با خواندن از 4 اBaSe_AddreSS می تواند به آن دسترسی پیدا کند.

۵-۴-(Data(MSB : دقیقا مثل حالت قبلی با این تفاوت که ۸ بیت بالا (MSB) در آن است و آدرسش در 5+J. Base Address با خواندن از این آدرس 0 =dV خواهد شد.
۵- طراحی FPGA : در طراحی این کارت از یک 15 - ALTERA) 7 128SLC84) استفاده شده است که رابط میان کاربر(از طریق ISA)و ICهای موجود در کارت می باشد. ورودی ها و خروجی های کارت در زیر مشخص شده اند:

این طراحی از اجزای زیر تشکیل شده است: ۱-۵-AddreSS Decoding : از یک 74688 که یک مقایسه کننده ۸ بیتی است که || 3..9]A و [4...9]Base AddreSS وارد این مقایسه کننده شده (A3 با 0 مقایسه می شود) و در صورت تساوی 0=myCOm (خروجی آن) می شود.
۵- ۲-Dcoding: در صورتیکه آدرس با آدرس کارت برابر باشد 0 = mycom می شود لذا Decoder 3:8) 74138 ، enable) که ورودی های آن [2.0]A می باشد فعال می شود.
۵ - ۳- P12 : یک register ۲ بیت است که [0..1]|D را هنگامی که در آدرس 2+ OutpOrt ،Base AddreSS شود در خروجی خود می نویسد.( [0..1]ADG508 Select ، B است.)
۵ - ۴- P13 : یک register ۳ بیت است که [0..2]|D را هنگامیکه آدرسی 0+Outport ، Base AddreSS شود در خروجی خود [0..2]CtrlW را می نویسد. su. . , calmode, convmode, Error Jus. Y, ctrlwl.0); as J. decoder & : PB1 -)-A



۶-۵- Call: بلوکی است که در آن سیگنال Call برای آغاز calibration ساخته می شود: Base Address+2, 51 (-žl AL33: 1, 2 b.\e Base Address+0 „) ) J. Jlš calmode AS alŠ: 8 Outport کنیم سیگنال Call به طول nS 300 تولید می شود و تا هنگامی که ورودی buSy آن ( که از AD676 می آید) 1 باشد، Clkpulse هایی تولید و به AD676 اعمال می شود. همچنین سیگنال Cal Satae، 1 می شود و تا پایان کالیبراسیون 1 می ماند در طی این مدت کاربر نباید COntrol Word را تغییر دهد. بنا بر توضیحات موجود در data Sheet برای آغاز کالیبراسیون باید سیگنال Call به مدت nS 50 1 بماند. از آنجایی که مدت زمان هر OutpOrt در حدود nS 300 است سیگنال Call را از and کردن سیگنالهای زیر ساخته ایم:

همچنین ورودی Clk به Ad676 تا زمانی که buSy بالا است باید اعمال شود و بعد از پایین رفتن buSy هم یک clk pullSe دیگر باید به AD676 داد به همین جهت ورودی Clk2meg را با کمکdfi به اندازهٔ ۳ Clk به تاخیر انداختیم و این clk را به شرط آن که 1=buSy=1 & CalmOde باشد به AD676 می دهیم. چون در طول زمان کالیبراسیون Clk در صورتی به AD676 اعمال می شود که در CalmOde باشیم و در صورتی که از Calmode خارج شویم عمل کالیبراسیون به دلیل اعمال نشدن Clk متوقف می شود و AD676 بقیهٔ Clk pulse های مورد نیاز خود را از عمل بعدی می گیرد و اگر این عمل تبدیل باشد باعث ایجاد خطا در خروجی می شود به همین خاطر بیتی موسوم به CalState در Status register قرار دادیم که هرگاه در حال انجام کالیبراسیون باشیم این بیت 1 شود و کاربر متوجه شود که عمل کالیبراسیون تمام نشده است و نباید COntTOl WOrd را تغییر دهد.
۷-۵- ConV: بلوکی است که در آن سیگنال Sample بطول ۳uS تولید و به AD676 می رود. هنگامی که conVmode فعالی باشد ( در Base_AddreSSF0| عدد 1 نوشته باشیم) اگر در 2+ OutpOrt، BaSe_AddreSS کنیم سیگنال Sample بعد از ۵uS (زمانی که طول می کشد تا AD524 در صورت تعویض کانال ورودی، خروجی تولید کند) تولید می کند و تا زمانی که buSy (خروجی AD676 ) 1 باشد در Clk pulse ، ClkOut_COnV هایی با فرکانس MGHZ ۲ تولید می کند.
۸-۵ - Sel2d: بلوکی است که در خروجی آن ۳ نوع داده ای که باید از طریق ISA به کاربر فرستاده شود ([2.0 StatuS 9S A Data_MSB[7.0] , Data_LSBI7.0valo „AJ, (Data_MSB[7.0], Data_LSB[7.0]) register های ۸ بیتی هستند که در صورتیکه در COnVmOde باشیم روی لبهٔ پایین روندهٔ Digit[15..0] ،buSy خروجی AD676 را می گیرد.( بر روی لبهٔ پایین رونده BuSy خروجی AD676 نتیجهٔ آخرین تبدیل است.)

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید