انجمن گفتگوی فراد اندیش

به اشتراک بگذارید:
Notifications
Clear all

ایجاد ارتباط UART با کد VHDL

فرزاد
(@farzadaavajgmail-com)
عضو جدید

با سلام کد VHDL یک ارتباط UART رو با استفاده از ماشین حالت نوشتم و شبیه سازی رفتاری رو هم انجام دادم. ارتباط به گونه ای است که گیرنده RX یک ورودی هشت بیتی به همراه بیت های stop و start را دریافت می کند. گیرنده پس از دریافت کامل دیتای هشت بیتی و هم چنین دریافت آخرین بیت یعنی بیت stop اجازه ارسال دیتا را با یک کردن یک خروجی valid به فرستنده می دهد سپس فرستنده شروع به ارسال دیتا به صورت سریال می کند گیرنده نیز همزمان دیتا سریال جدید بعدی را دریافت می کند اما تا زمانی که بیت Stop دریافت نشده آن را در ورودی فرستنده قرار نمی دهد. طبیعتا چون گیرنده 10 بیت را دریافت می کند و فرستنده 8 بیت را می فرستد (هردو با نرخ بیت یکسان) از لحاظ زمانی دیتای اشتباه رد و بدل نمی شود.
شکل موج را ضمیه کردم اما از صحت عملکرد این ارتباط مطمین نیستم.

نقل‌قول
شروع کننده موضوع ارسال‌شده : 8 اردیبهشت، 1400 2:34 ب.ظ
فرزاد
(@farzadaavajgmail-com)
عضو جدید
ارسال‌شده توسط: @farzadaavajgmail-com

با سلام کد VHDL یک ارتباط UART رو با استفاده از ماشین حالت نوشتم و شبیه سازی رفتاری رو هم انجام دادم. ارتباط به گونه ای است که گیرنده RX یک ورودی هشت بیتی به همراه بیت های stop و start را دریافت می کند. گیرنده پس از دریافت کامل دیتای هشت بیتی و هم چنین دریافت آخرین بیت یعنی بیت stop اجازه ارسال دیتا را با یک کردن یک خروجی valid به فرستنده می دهد سپس فرستنده شروع به ارسال دیتا به صورت سریال می کند گیرنده نیز همزمان دیتا سریال جدید بعدی را دریافت می کند اما تا زمانی که بیت Stop دریافت نشده آن را در ورودی فرستنده قرار نمی دهد. طبیعتا چون گیرنده 10 بیت را دریافت می کند و فرستنده 8 بیت را می فرستد (هردو با نرخ بیت یکسان) از لحاظ زمانی دیتای اشتباه رد و بدل نمی شود.
شکل موج را ضمیه کردم اما از صحت عملکرد این ارتباط مطمین نیستم.

و سوال که داشتم فراموش کردم. مقدار پیش فرض خروجی فرستنده یعنی TX زمانی که دیتا آماده ارسال نیست باید یک باشد و یا صفر؟

من در کد خودم یک گذاشتم

پاسخنقل‌قول
شروع کننده موضوع ارسال‌شده : 8 اردیبهشت، 1400 2:42 ب.ظ
به اشتراک بگذارید:
>