詳細のLinuxドライバのUSB仮想UART

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/madannasf/article/details/102677695

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シリアルドライバです。

おすすめ

転載: blog.csdn.net/madannasf/article/details/102677695
おすすめ