طراحی و ساخت یک کارت صوت کامپیوتر
مقدمه
همراه با پیشرفت سیستمهای کامپیوتری و ظهور 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 (Industry Standard Arehitecture)
باس ISA که برخی به آن باس AT نیز میگویند دارای مشخصات زیر میباشد:
1- 16 بیت باس دیتا
2- 24 بیت باس آدرس
3- 11 خط وقفه IRQ2-ERQ7)، IRQ14-IRQ15،IRQ10-IRQ12)
4- 7 کانال DMA
5- ماکزیمم فرکانس باس برابر 33/8 مگاهرتز
6- سیکلهای باس بدون Wait state را حمایت میکند
7- حمایت از masterهای alternate
8- انتقال داده به صورت سنکرون است و 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 انجام میگیرد.
سیگنالهای گذرگاه ISA :
خطوط آدرس A0-A19
A0-A19 (که به آن SA0-SA19 نیز میگویند) جهت دستیابی به حافظه و I/Oها مورد استفاده قرار میگیرند. چون سرعت CPU زیاد است و ممکن است چپهای جانبی با این سرعت کار نکنند و قبل از برداشتن آدرس توسط وسایل جانبی آدرس نامعتبر گردد. بنابراین آدرس را latch میکنیم (مثلاً توسط 74373). این کار توسط سیگنال ALE انجام میگیرد. تراشه Latch توسط لبه بالا رونده ALE فعال میشود و خطوط آدرس در لبه پایین رونده ALE در داخل Latch قرار میگیرند. این کار در درون PC انجام میشود و خطوط فوق که در Slot موجود میباشند Latch شده هستند و در طول سیکل خواندن یا نوشتن ثابت میمانند.
ALE
Address Lnvalid Time to latch Address Valid
شکل(1-1)
برای وسایل I/O فقط پایههای A0-A15 استفاده میشود و خطوط وزن بالا برای کار با حافظه میباشند.
: (Address Latch Enable) ALE
این سیگنال برای ایجاد اطلاعات زمانی برای latch کردن آدرس بکار میرود. لبه بالارونده این سیگنال وجود آدرس معتبر را روی پایههای A0-A19 نشان میدهد. لبه پایینرونده، ALE را میتوان برای latch کردن آدرسهای دریافتی از ریزپردازنده بکار برد. آدرس روی خطوط آدرس از لبه پایینرونده این سیگنال تا آخر سیکل باس معتبر است.