بنام خدا
نوشتار حاضر توضیح و گزارشی است راجع به ساخت وسیلهای که قادر به ضبط صدا روی رایانه و تبدیل آن فرمتی قابل درک برای سیستم عامل است و در واقع میتوان آن را به نوعی مدار واسطی با استفاده از اسلات ISA کامپیوتر دانست.
این پروژه در واقع شامل سه بخش طراحی و ساخت بخش آنالوگ، طراحی و ساخت سختافزار دیجیتال برای ارتباط با کامپیوتر و طراحی و اجرای نرمافزاری برای شناساندن به رایانه است.
به عقیده اینجانب مهمترین هدف این کار را میتوان گامی برای درک نحوه ارتباط رایانه با محیط خارج دانست، کاری که امروزه میتواند یکی از مهمترین اصول و نیازهای اتوماسیون باشد. زیرا با توجه به اینکه رایانههای شخصی اکنون وسایلی در دسترس و ارزان قیمت هستند، بهترین و ارزانترین راه اتوماسیون ارتباط دادن وسایل گران دیروزی به رایانه ارزان امروزی است که با توجه به قابلیت برنامهپذیری فوقالعاده بالا ما را قادر میسازد با هزینهای بسیار کم امکاناتی فوقالعاده زیاد را به وسایل خود اضافه نماییم و علاوه بر اینکه کاری که سختافزار پیچیده و گران قیمت انجام میداد را نیز رایانه با نرمافزار به نحوی بهتر و دقیقتر انجام خواهد داد. به عنوان نمادی از این روند در این پروژه بر خلاف کلیه کارتهای صوتی موجود در بازار که روی برد خود تراشهای به عنوان DSP دارند، با استفاده از یک نرم افزار کار پردازش سیگنال دیجیتال انجام میشود.
توضیحات خود را نخست با توضیح کامل اسلات ISA که مهمترین بخش پروژه است آغاز مینماییم. سپس توضیحاتی راجع به کارتهای صوت موجود در بازار و در نهایت راجع به نحوه کار مدار آنالوگ، نحوه ارتباط با رایانه و چگونگی عملکرد نرمافزار ادامه میدهیم. در این قسمت لازم است از زحمات و راهنماییهای ارزشمند استاد راهنما جناب آقای دکتر شریفی قدردانی کرده و برای ایشان آرزوی موفقیت در فعالیتهای علمی و تحقیقاتیشان را داشته باشم. همچنین از جناب آقای مهندس وکیلی به عنوان مشاور سختافزاری و جناب آقای مهندس محمد حسن بستانی به عنوان مشاور نرمافزاری نهایت امتنان را دارم.
مقدمهای بر باس ISA
همراه با پیشرفت سیستمهای کامپیوتری و ظهور CPU های قویتر، باسهای ارتباطی اجزاء کامپیوتری نیز، دچار تغییر و تحول شدهاند. باس اولین کامپیوترهای IBM ، باس XT ی 8 بیتی بود. با ظهور CPU های 16 بیتی این باس جای خود را به باس AT یا ISA ی 16 بیتی با فرکانس کاری 8 مگاهرتز داد. ظهور CPU های 32 بیتی و کاربردهای سریع گرافیکی از یک طرف و مشکلات باس ISA از طرف دیگر، سازندگان کامپیوتر را بر آن داشت که به فکر ایجاد یک باس جدید و سریع باشند. بدین ترتیب باسهایی نظیر IBM Micro Channel و EISA معرفی شدند که 32 بیتی بودند. این باسها دارای سرعت بیشتری نسبت به ISA بودند و بسیاری از مشکلات آن را برطرف کرده بودند ولی باز دارای مشکلاتی بودند. مثلا IBM Micro Channel با ISA سازگار نبود و EISA دارای سازگاری الکترومغناطیسی خوبی نبود.
برای افزایش سرعت مخصوصا برای کارتهای گرافیکی یک روش این است که به جای اینکه کارتها از طریق اسلاتهای توسعه نظیر ISA به کامپیوتر وصل شوند بطور مستقیم به باس محلی کامپیوتر وصل گردند و بدین ترتیب چندین باس محلی بوجود آمد که از جمله مهمترین آنها میتوان به باس VESA یا VLBUS اشاره نمود. بوسیله این باس میتوان حداکثر 3 کارت را به باس محلی CPU وصل نمود.
با روی کار آمدن پردازنده پنتیوم و مشکلات موجود در گذرگاههای قبلی، شرکت اینتل به فکر طراحی یک باس استاندارد با سرعت و قدرت بالا افتاد. بدین ترتیب باس PCI معرفی گردید که برای دسترسی به اجزای جانبی با همان سرعت باس محلی طراحی شده است.
باس محلی CPU به دو باس به اسم front side bus و backside bus تقسیم شده است.باس backside یک کانال سریع و مستقیم بین CPU و حافظه کش (مرتبه دوم) را فراهم میکند.باس frontside از یک طرف حافظه سیستم را از طریق کنترلر حافظه به CPU وصل میکند و از طرف دیگر باسهای کامپیوتر نظیر PCI ، ISA و … را به CPU و حافظه سیستم وصل مینماید.در واقع این کار باعث گردیده است که وقتی CPU با حافظه کش کار میکند، وسایل جانبی دیگر بتوانند به حافظه سیستم دسترسی پیدا کنند.
در این پروژه سعی شده باس ISA به طور کامل مورد بررسی قرار گیرد که به ترتیب مطالب فصول 1و 2 را تشکیل می دهند. در این فصول به طور مفصل مشخصات الکترونیکی این باسها و نحوه ارتباط آنها با CPU بیان شده . امید که این پروژه بتواند در تفهیم مطالب مذکور مفید فایده قرار گیرد.
ISA BUS
باس ISA (Industry Standard Arehitecture)
باس ISA که برخی به آن باس AT نیز میگویند دارای مشخصات زیر میباشد:
16 بیت باس دیتا
24 بیت باس آدرس
11 خط وقفه IRQ2-ERQ7)، IRQ14-IRQ15،IRQ10-IRQ12)
7 کانال DMA
ماکزیمم فرکانس باس برابر 33/8 مگاهرتز
سیکلهای باس بدون Wait state را حمایت میکند
حمایت از masterهای alternate
انتقال داده به صورت سنکرون است و Muster هیچ سرکشی از Slave به عمل نمیآورد. بلکه Master و Slave خود را با کلاک سیستم سنکرون میکنند. ماکزیمم انتقال داده برابر است با :
8/33MHZ *
محدودیتهای ISA
1- باس دیتای آن 16 بیتی است و نمیتواند باس دیتای 32 و 64 بیتی پردازندههای پنتیوم را حمایت کند.
2- باس آدرس آن 24 بیتی است و میتواند MB16 حافظه را آدرس کند و قادر نیست باس آدرس 32 بیتی (GB4) پردازندههای پنتیوم را حمایت کند.
3- شیارهای گسترش باس ISA بزرگ بوده و علاوه بر اینکه جای زیادی را میگیرد به دلیل افزایش اثرات فازی و القایی فرکانس باس به 33/8 مگاهرتز محدود میگردد. یعنی CPU که با فرکانسهای بالا نظیر 50 مگاهرتز کار میکند هنگام کار با ISA با نرخ 33/58 مگاهرتز تبادل داده میکند. به علت کم بودن پایههای زمین اثرات تابش فرکانس رادیویی و اثرات Crosstalk کاهش نیافته و ISA از نظر اجرایی دچار مشکل میگردد.
4- چون وقفهها (IRQها) حساس به لبهاند، به هر یک فقط یک وسیله میتواند اختصاص پیدا کند. و دو یا چند وسیله نمیتوانند از یک پایه وقفه مشترک استفاده نماید. در سیستمهای فرکانس بالا، وقفه حساس به لبه، به دلیل نویز در ورودی IRQ، امکان فعال شدن غلط وجود دارد.
5- در کامپیوترهای قدیمی PC/XT 4 کانال DMA 8 بیتی وجود داشت که کانال 0 برای Refresh حافظههای DRAM بکار میرود. کانالهای 3-1 بعنوان DMA برای انتقال داده بکار میروند.
در کامپیوترهای جدید PC/AT،
کانال 0 وظیفه Refresh حافظههای DRAM را بر عهده ندارد و بجای آن یک مدار Refresh این کار را انجام میدهد. بنابراین کانال 0 نیز میتواند مانند بقیه کانالها برای انتقال داده استفاده شود. در کامپیوترهای PC/AT، 3 کانال DMA، 16 بیتی اضافه شده است. پس در مجموع 7 کانال DAM وجود دارد که کانالهای 5 الی 3، 8 بیتی و کانالهای 4 الی 7، 16 بیتی هستند. مشکلی که وجود دارد انستکه کانالهای DMA 16 بیتی تنها قادر به انتقال داده از آدرسهای زوج هستند ولی DOS داده را از آدرس فرد یا زوج به حافظه RAM منتقل مینماید و با این کار سازگار نیست. بنابراین عملیات انتقال بجای DMA از طریق CPU انجام میگیرد.