کنترل کننده و میزبان usb با استفاده از VNC1L
امروزه کار با پورت ها از جمله usb,lpt,com به خصوصی کار با پورت usb از طریق میکروکنترلر ها یکی از اهداف اصلی سازنده مدارو برنامه نویس ها میباشد قبلا مداری در همین سایت ارائه شد ( مبدل usb به سریال با قابلیت اتصال به میکرو کنترلر- ft232 )که با آن به صورت سریال میتوانستید از طریق پورت usb با کامپیوتر ارتباط برقرار کنید اما نمیتوانستید اطلاعات دیگر وسایل مثل فلش مموری ها ، موبایل ها و…که با پورتusb در ارتباط بودن و از ان طریق تبادل اطلاعات میکردن، را بخوانید
دراین بخش به معرفی آیسی VNC1L-1A میپردازیم ، ازطریق این آی سی میتوانید براحتی با دیگر دستگاه های که پورت USB دارند ارتباط برقرار کنید وبه عنوان یک میزبان اطلاعات ان را بخوانید و یا برروی ان اطلاعات بریزید هم چنین که یتوانید اطلاعات که ازطریق FAT ذخیره سازی شده اند را براحتی بخوانید
بعد از ساخت این مدار براحتی میتوانید تا ۲ دستگاه مجزا و به صورت همزمان را به ان متصل کنید ،دستگاه های مختلف از جمله ، موبایل ، فش مموری ،دوربین عکاسی و هر دستگاه دیگری که از طریق پورت USB تبادل اطلاعات میکند رابه ان وصل کنیدو مدار شما به عنوان میزبان اطلاعات را بخواند و یا در ان چیزی بنویسد. (برای بزرگتر دیدن عکس ها برروی ان کلیک کنید)
نحوه دریافت اطلاعات از آیسی میزبان به صورت های سریال UART و SPI و PIPO =Port Input & Port Output میباشد
مشخصات این آی سی به شرح زیر میباشد
Single chip embedded USB host / slave controller
I.C. device
• Entire USB protocol handled on the chip
• ۸ / ۳۲ bit V-MCU Core
• Twin DMA controllers for hardware acceleration
• Integrated 12 MHz to 48 MHz clock multiplier
• Integrated power-on-reset circuit with optional
RESET# input pin
• ۶۴k byte embedded Flash ROM program memory
• ۴k byte internal data SRAM
• Standard USB fi rmware library supplied by FTDI
• Program or update fi rmware via USB Flash disk or
UART interface
• Firmware easily upgradable in the fi eld
• PROG# fi rmware programming control pin
• Two independent USB 2.0 Low speed / Full speed
USB Host / Slave ports with integrated pull-up and
pull-down resistors
• Four fully confi gurable data I/O and control Buses
• UART interface mode for data I/O, fi rmware
programming, and command monitor interface
• FIFO interface mode with 8 bit bi-directional data
bus and simple 4 wire handshake for data I/O and
command monitor interface
• SPI slave interface mode for data I/O and
command monitor interface
• Up to 28 GPIO interface pins for data I/O and
command monitor interface
• Interface to MCU / PLD / FPGA via UART, FIFO, or
SPI interface
• Legacy PS/2 keyboard and mouse interfaces
• Multi-processor confi guration capable
• Support for USB suspend and resume
• Support for bus powered, self powered, and highpower
bus powered USB device confi gurations
• ۳٫۳V operation with 5V safe inputs
• Low operating and USB suspend current (25mA
running / 2mA stnadby)
• Fully compliant with USB 2.0 specifi cation – USB
full speed (12 Mbps) and low speed (1.5 Mbps)
USB host and slave device compatible
• ۰°C to 70°C operating temperature range
• Full driver support for target / slave applications
• Available in compact Pb-free and green 48 Pin
LQFP package (RoHS compliant)
• Full range of reference designs and evaluation kits
Availabl
شرح مختصری از ویژگی ها ذکر شده در بالا بدین صورت میباشد
- کنترلر USB HOST
- تبادل اطلاعات با USB FLASH و دیگر تجهیزات دارای پورت USB
- تبادل داده با و کنترل بوسیله MCU/FPGA/PLD
- دارای firmware جهت کاربردهای گوناگون
- دارای قابلیت کنترل دو پورت USB مجزا
- قابلیت اتصال به میکرو کنترلر های ۸ و ۳۲ بیتی
- دارای ۲ مرکز DMA جهت ثبات کاری هرچه بیشتر ماژول
- فرکانس کاری بین ۱۲ تا ۴۸ مگاهرتز
- قابلیت ریست خودکار در هنگام روشن شدن به همراه پایه reset
- دارای ۶۴ کیلوبایت حافظه برنامه flash rom و۴ کیلو بایت sram داخلی
- دارای کتابخانه استاندارد برای سخت افزار usb که توسط شرکت سازنده ftdi پشتیبانی میشود
- قابلیت بروز رسانی برنامه سخت افزاری usb از طریق USB Flash disk یا ارتباط سریال UART
- بروز رسانی راحت برنامه سخت افزاری usb
- پشتیبانی از ۲ پورت usb 2.0 باقابلیت سرعت پایین ، سرعت بالا،میزبانی Slave ports به کمک پول اپ و پول دون کردن مقاومت ها
- دارای ۴ حالت تنظیم برای تبادل باس اطلاعات ورودی و خروجی
- قابلیت بروز رسانی برنامه سخت افزار، حالت اطلاعات ورودی و خروجی و دستورات برای نمایش اطلاعات ار طریق سریال uart
- قابلیت اتصال از طریق پروتکل spi برای اطلاعات ورودی و خروجی و command monitor interface
- قابلیت افزایش تا ۲۸ پایه برای تبادل اطلاعات command monitor
- قابلیت اتصال به MCU / PLD / FPGA از طریق پروتکل های UART, FIFO, SPI
- قابلیت اتصال ازطریق پروتکل موس و کیبورد و اتصال موس و کیبورد
- قابلیت تنظیم برای چند پردازش گر
- پشتیانی در ارسال اطلاعات به صورت تکه به تکه و معلق شده
- پشتیبانی از bus powered, self powered, highpower bus دستگاه های متصل
- قابلیت کار در ولتاژ ۳٫۳ ولت به همراه حفاظت در برابرولتاژ ۵ ولت ورودی
- سازگاری کامل با usb 2.0 و پشتیبانی از سرعت بالا تا ۱۲ Mbps و سرعت پایین ۱٫۵ Mbps
- رنج دما بین ۰ تا ۷۰ درجه سانتی گراد
در مورد نحوه عمکلرد و دستگاه هایی که میشه به کمک این ای سی ساخت که گزینه های بسیار زیادی وجود دارد که خارج از این بحث است که در چند عکس قبلی انرا مشاهده کردید
بلوک دیاگرام:
دراین بخش به توضیح بخش های مختلف آی سی طبق بلوک دیاگرام بالا خواهیم پرداخت:
- USB Host / Slave Transceivers 1 and 2:
این بخش مربوط به ارسال و دریافت اطلاعات از طریق USB میباشد که به صورت USB HOST و SLAVE عمل خواهد کرد هم چنین که از USB 1.1 و USB 2.0 را پشتیبانی میکند و با استفاده از مقاومت ها و نحوه قرار گیری به صورت پول آپ و پول دون میتوان آنرا در دو وضعیت میزبان HOST USB و SLAVE قرار داد
- USB Host / Slave Serial Interface Engine ( SIE ):
وظیفه این بخش تبدیل اطلاعات USB از سری به موازی و بالعکس میباشد و بررسی خطا های بوجود امده هم چنین
CRC generation / checking, USB frame generation
- 12 MHz Oscillator:
این بخش شامل اسیلاتوری میباشد که فرکانس ۱۲ مگاهرتز را بر اساس کریستال ۱۲ مگاهرتز متصل به برد خواهد ساخت هم چنین که فرکانس مورد نیاز جهت بخش Clock Multiplier PLL را تامین میکند
- Clock Multiplier PLL
این بخش فرکانس اولیه خود را از اسیلاتور گرفته و با توجه به فرکانس ورودی ۱۲ مگاهرتز فرکانس های ۲۴ و ۴۸ مگاهرتز را برای بخش های USB SIE وبخش MCU CORE و سیستم تایمر مدار و فرکانس سریال را تولید میکند
- Program and Test Logic
این بخش وظیفه پروگرم کردن حافظه E-Flash داخلی را دارد، وقتی که پایه PROG# را به زمین وصل کنید و مدار را ریست کنید بعد از روشن شدن مدار حافظه E-Flash به کمک بوت استارت rom جهت پروگرم کردن از طریق uart اماده میشود
- DMA Controller 1 and 2
وجود ۲ کانال dma باعث میشود که حتی در مواقعی که بیشترین بار پردازشی برروی cpu باشد باز هم بخش های مختلف مدار ازجمله spiوuart و پایه های ورودی و خروجی و ارتباط بین sram داخلی و میکرو متصل به مدار بدون مشکل ، پایدار بماند و وظیفه خود را انجام بدهند
- Data SRAM
این بخش که شامل حافظه ۴ کیلو بایتی ۸ بیتی میباشد وظیفه آماده سازی و ارائه اطلاعات به پورت خروجی را دارد هم چنین که این بخش توسط dma نیز کنترل میشوذ
- NPU ( Numeric CoProcessor )
بیشترین میکرو های متصل به این آی سی ۸ بیتی هستند اما در مواقعی نیز ممکن است که میکرو ۳۲ بیتی نیز به این آی سی وصل شود و وظیفه این بخش تنظیم سرعت و نوع اطلاهات ارسالی به میکرو میباشد
- UART Prescaler
وظیفه اصلی این بخش آماده سازی کلاک مورد نیاز برای uart میباشد که براحتی میتوان توسط این بخش فرکانس لازم را برای نرخ تبادل اطلاعات بین ۳۰۰ تا ۱مگا را تامین کرد
- SYSTEM TIMER
این بخش وظیفه ساخت اینتراپت های لازم در ارتباط با بخش اصلی ومیکرو را بر عهده دارد و زمان ۱ms را میسازد
- VINCULUM MCU CORE
دراصل از این بخش به عنوان قلب این آی سی یاد میشود ، بخش VMCU است که براساس تکنولوژی ftdi و به صورت ۸ بیتی ساخته شده است ،در این قسمت دیتا ها و آدرس ها از هم جدا میشوند و از ۶۴ کیلوبایت کد های پروگرم و۶۴ کیلو بایت دیتا و ۲۵۶ بایت فضا برای رجیسترهای ورودی وخروجی نیز برخوردار میباشد
- E-FLASH Program ROM
ای سی nvc1l دارای ۶۴ کیلو بایت میباشد و نیاز به ولتاژ خاصی جهت پروگرم کردن ندارد و تمام مراحل مورد نیاز برای پروگرم کردن توسط یک چیپ داخلی تحت نظر VMCU با استفاده از پروتکل UART صورت میگیرد و برای پروگرم کردن باید پایه PROG# زمین شود ودستگاه و چیپ را ریستارت کنید یا این که با استفاده از فلش که firmware لازم برروی باشد چیپ را پروگرم کنید
- BOOTSTRAP LOADER ROM
این بخش کوچکی است که شامل یک ROM با فضا ۵۱۲ x 8 bits میباشد و در مواقع پروگرم کردن استفاده میشود
- UART and FIFO Logic
این بخش شامل تنظیمات لازم برای ارتباط سریال و موازی با VNC1L میباشد که شامل پروتکل UART و ارتباط FIFO میباشد
- GPIO Blocks
این قسمت شامل بخش اصلی برای پین های ورودی و خروجی مدار میباشد
جهت آشنایی بیشتر با نحوه عملکرد آی سی vnc1l میتوانید دیتا شیت آن را از طریق لینک زیر دانلود کنید
جهت دانلود فایل دیتا شیت میزبان یواس بی vnc1l بر روی عکس زیر کلیک نمائید.

دفعات دانلود ۱۲۲
در آخر عکس یک نمونه روبات که بوسیله موبایل و با استفاده ازا این ای سی کنترل میشود را مشاهده میکنید
بحث وگفتگو در مورد این مطلب در انجمن سایت









با تشکر از برنامه ای که ارسال کردید . فقط یک سوال داشتم اینکه با همین برنامه میشه اطلاعات میکرو را روی فلش ذخیره کرد؟
با تشکر از برنامه ارسالی یک سووالی داشتم اینکه با همین برنامه میشه اطلاعات میکرو را روی فلش ذخیره کرد؟
سلام
اگه میشه راجع به ارتباط کیبورد با میکروپروسسور (اف پی جی ای )
وبرنامش توضیخ بدید ممنون میشم
ps/2 keyboard protocol for fpga