یه راه که خیلی جاها دیدم استفاده شده اینه که چند تا میکرو کوچولو (مثلا atmega8 SMD) گذاشتن تو مدار که هر کدوم مسئولیت یه پورت رو بعهده داشته و با پردازنده اصلی بصورت موازی یا I2C ارتباط برقرار میکرده.
یه روش دیگه اگه ارسال (یا دریافت) در چهار پورت بصورت ترتیبی هست (یعنی با هم اتفاق نمی اقته) اینه که از گیت های AND ,OR استفاده کن تا فقط با یه پورت بتونی از هر کدوم از اون چهار پورت بخونی یا بنویسی
بدترین راه هم اینه که بگردی ببینی میکرو با چهار تا پورت سریال داریم سفارش بدی برات بیارن
یه روش دیگه اگه ارسال (یا دریافت) در چهار پورت بصورت ترتیبی هست (یعنی با هم اتفاق نمی اقته) اینه که از گیت های AND ,OR استفاده کن تا فقط با یه پورت بتونی از هر کدوم از اون چهار پورت بخونی یا بنویسی
راههای مختلفی هست
1- می تونید از atmega 2560 استفاده کنید که 4 تا پورت سریال داره .
2- استفاده از آیسی ارتباط سریال (شمارش یادم نیست اما تو همین سایت اسمش رو دیدم )
3- در صورتی که مطمئن هستید که در هر زمان فقط یک ارتباط سریال دارید مثلا دو تا ماژول هست که بصورت ترتیبی کار میکنند میتونید با یک مدار دیودی همه اونها رو به یک پورت سریال متصل کنید
4- استفاده از mux که البته یکم اذیت میکنه هم نویز میندازه هم احتمال درست عمل نکردنش هست
مجازی یا نرم افزاری بسته میشه که باید مرتبا سرکشی بشه و یا به ازای هر کانال یک تایمر و یک وقفه رو حروم میکنه. تازه وقت میکرو رو هم میخوره. میتونین از آی سی هایی مثل 8250 یا 2661 یا 16550 استفاده کنین. میشه از fpga هم استفاده کرد. مدل مربوط به یک uart فکر نمیکنم چیز حجیمی باشه. ولی از تمام اینا گذشته صرف نظر از دردسر اولیه اش همون مگا هشت چیز ناز تریه. البته فقط تنها حسنش یکی بافر داخلیشه و یکی ارزون بودنش برای تعداد بالاتر از چهارتا. ولی اگر مطمئن هستین که مشکلتون همین چهارتا پورت هست و بیشتر نمیشه همون xmega یا 2560 فکر کنم از همه بهتر باشه.
دیدگاه