UART در FPGA

یکی از بهترین ویژگی ها در مورد UART این است که فقط از دو سیم RXو TXبرای انتقال داده بین دستگاه ها استفاده می کند. 


UART ها داده ها را به صورت آسنکرون منتقل می کند، به این معنی که هیچ سیگنال کلاکی برای سنکرون سازی خروجی بیت ها از UART فرستنده به UART  گیرنده وجود ندارد.

 داده های دریافتی و ارسالی یک جریان بیت می باشد که شامل یک بیت شروع(Start bit)، 5تا 8 بیت داده(Data bits) ، یک بیت توازن(optional Parity bit) و یک یا دو بیت توقف(Stop bit) می باشد.

Start bit : هنگام ارسال اطلاعات  یک بیت ۰ برای آگاه سازی به گیرنده ارسال می‌شود.

Data bits : بسته دیتا ارسالی از 5 تا 8 بیت در این قسمت قرار می گیرد که در بیشتر کاربردها از بسته 8تایی استفاده می شود و در اغلب آنها ابتدا بیت کم ارزش ارسال می گردد.

Parity bit : بیت توازن برای مشخص کردن خطای کد استفاده می شود که به  3حالت none ، even و odd قابل تنظیم است. در حالت none بیتی در این قسمت قرار نمی گیرد، درحالت even باید بیت توازن عددی باشد تا مجموع 1های Data bits و Parity bit زوج باشند و همپنین در حالت odd باید بیت توازن عددی باشد تا مجموع 1ها فرد شوند.

Stop bit : جهت آگاه سازی گیرنده از اتمام ارسال بسته از یک یا دو بیت      در پایان بسته دیتا استفاده می کنیم.

 در پیاده سازی ماژول Uart طول بیت ارسالی در ماژول ها را 8 بیت بصورت generic در نظر میگیرم. توجه داشته باشید که در پیاده سازی این ماژول ها Parity نخواهیم داشت و از یک Stop bit بهره می بریم. فرکانس پردازشی سیستم را  50MHz و به عنوان مثال نرخ ارسال دیتا را 4800bits/s در نظر میگیرم. بر این اساس حاصل تقسیم فرکانس پردازشی و نرخ ارسال دیتا را بصورت Generic در هر دو ماژول فرستنده و گیرنده تعریف می کنیم. یک حافظه 1K  نمونه 8 بیتی در فرستنده جهت از دست ندادن دیتاهای ورودی در نظر گرفته ایم که تمام طول بیت های سریال از 5 تا 8 را جوابگو می باشد.       

جهت دانلود پروژه روی UART.rar کلیک کنید.