I.概要
組み込みデバイス、UARTボードの数が限られているので、複数のプロジェクトを持つ必要性のUARTインタフェース、USB UARTのターンが簡単にドラッグ以上をサポートするために拡張することができ、大幅本の需要UARTを拡大セクションでは、我々は、UARTドライバに詳細USBに説明します。
1.1、理論を必要とします
1、USBドライブ、関連する; HTTPS://blog.csdn.net/madannasf/article/details/102658630
2、UARTドライバが関連付けられる:(私が書く)、我々はまた、この1、多くはないの理論を参照してください、しかし、がありますすることができます例では、ル良いです。
https://blog.csdn.net/wangzhen209/article/details/76685756
二、USB仮想UART
2.1、投機フレームワーク
仮想UARTは、上部層のプログラミングの使用に見ることができるUSB、UART方法開放されて、読み出しおよび書き込み、uart_opsにUARTフレームワークが、UARTドライバを用いて駆動されるすべての実現が、USBによって提供されなければならないので、基礎となるハードウェアUSBで実装を実現。
説明 | レベル |
---|---|
オープン(は/ dev / usbttyx) | プログラミングの連続使用(上) |
UARTドライバ実装フレームワーク | シリアルポートドライバの実装(ドライバ層) |
USBハードドライブフレーム | 付属のUSBハードウェア機能は、シリアルポートドライバをuart_ops |
2.2メインデータ構造
2.2.1、UART層
1、構造体tty_driver
2、構造体tty_port
3、構造体tty_operations
2.2.2、USB層
1、構造体usb_serial_driver
2.3、主な機能
* 1、構造体tty_driver alloc_tty_driver(unsigned int型線は、フラグに)
主にデータtty_driverを割り当てるために使用され、行がシリアル番号を表します。
主にtty_struct、tty_portメモリ空間を割り当てられました。
2 **、ボイドtty_set_operationsは(tty_driver構造体ドライバ、tty_operations CONST構造体OP)
この関数は、UART OPを制御するために使用される、関連する層の使用のために動作登録tty_driver-> OPSあります。
* 。3、INT tty_register_driver(構造体tty_driver ドライバ)
この関数は、tty_driverの端末を追加するために使用されるグローバルリンクリストデータをtty_drivers、および主要なキャラクタデバイスノードの割り当てを作成します。
動的デバイスノードを作成するために動的TTY_DRIVER_DYNAMIC_ALLOCを使用して構造体tty_driverのフラグ部材は、次いで、デバイスノードの下FOPS直接提供されたデータの使用に作成される場合ltdis tty_ltdisで読み取ります。
* 4、INT usb_register(構造体usb_driver new_driver)
この関数は、USBの主要エンドポイント構成を提供します。
5、INT usb_serial_generic_register(無効)
登録.nameのusb_serial_driverの=「一般的な」
USB特定の実装は、シリアルドライバ/ USB /シリアル/ USB-を指すことができる serial.c
関連する構成とすることができるオペレーションを完了するために、シリアルチップ、チップに特定のUSBに、シリアル機能に関連完了USB。
第三に、ドライブの例
ダウンロード:USBシリアルドライバのダウンロード
ファイルをこのリンクでは、それは良いCH341のUSBシリアルドライバです。