【転載】serial8250

1 8250シリアルポートタイプの識別
Intel HWはDesignWare 8250を使用:
ドライバー/ mfd / intel-lpss-pci.c
ドライバー/ tty /シリアル/ 8250 / 8250_dw.c

IIRレジスタの上位2ビット、ビット7およびビット6は、8250シリアルポートの識別に使用されます。タイプ:
FIFO無し0--8250、
0 - 、そこSCR(スクラッチレジスタ)FIFOなし、16450、レジスタ
2から16550
。3 - 16550A

UART図1-1ポート・レジスタ変換表に

2 16450
シリアルポートの5、6、および7(三菱PLCは7ビットのデータビット)および8ビットのデータ長:各バイトに対応する下位5、6、7、および8ビットのみが取得され、残りの上位ビットは破棄され

ます。 UART16450:164 = 82 x 2、16450は8250

USB VCPボーレートの拡張バージョンであり、任意に設定できます。伝送レートはUSBレートによって制限されます。VCP のもう一方の端が実際の物理シリアルポートである場合は、ボーレートを設定する必要があります。

16450ドライバー:
QNX:devc-serpci
Linux:ドライバー/ tty /シリアル/ 8250 / 8250_dw.c

3 16550A
3.1基本機能
1)16550A-2 16バイトFIFO、1送信、1受信
2)RXサポート1、4
8、14 合計4つのFIFOトリガーレベル3)TTY_BUFFER_PAGE->はtty_bufferに対応します
4)#define N_TTY_BUF_SIZE 4096-> ldiscに対応するread_buf

3.2 UART 16550コア
UART 16550コア
https://opencores.org/projects/uart16550

3.3 URL
https://sourceforge.net/p/ftdi-usb-sio/patches/5/

4 uart_port
4.1基本概念
uart_portはUSBハブのポートに似ていますが、各uart_portにはドライバーがあり、USBハブのポートは一般的なハブドライバーです。

4.2 PCI産業用通信カード
ドライバー/ tty /シリアル/ 8250 / 8250_pci.c

PCIカードには複数の8250シリアルポートがあり、各シリアルポートのベースアドレスを見つける方法:
-PCI BAR0からBAR3はttyS0からttyS3に対応し、一般的に使用されますサードパーティ製のPCIシリアルカード-PCIは
マルチファンクを実装し、各機能はシリアルポートに対応します。Intelのデフォルト

4.3 TL16C554A
CはCMOSプロセスを意味し、最後の数字は4ポートを意味し、4ポートは16550Aに基づいて

4.4
S3C2440に基づくURL および組み込みLinux拡張シリアルポート設計
http://m.eccn.com/consultation/design/2011080310024077.html

5割り込み処理
5.1シリアルポート割り込み番号の自動検出
probe_irq_on()
probe_irq_off()

5.2アイドルおよびブレーク割り込み
アイドルおよびブレーク割り込み:アイドル割り込みはデータを受信した後、バイトの高レベル(アイドル)状態はアイドル割り込みをトリガーします。常にアイドルであるとは限らず、常に割り込みが発生します。立ち上がりエッジ(ストップビット)のちょうど1バイト後でなければなりません。常にローの場合、アイドル割り込みはトリガーされず、ブレーク割り込みがトリガーされます。

6 FIFOおよびDMA
6.1 8250 RX FIFOトリガーレベル
16550AおよびTegra:1、4、8、または14バイト
16650V2:8、16、24、または28バイト
16654:8、16、56、または60バイト
16750:1、16、32、または56バイト

echo 4> / sys / class / tty / ttyS0 / rx_trig_bytes

6.2 RXオーバーフローの表示
cat / proc / tty / driver / serial

6.3 8250 DMA
可変長データタイムアウト割り込みを受信:UART_IIR_RX_TIMEOUT

6.4 URLs
serial:8250:不正なrxタイムアウト割り込みからの「あまりにも多くの作業」を回避
https://lore.kernel.org/patchwork/patch/744611/

7ツール
7.1シリアルポートのさまざまなプロパティを制御する
busybox stty -F / dev / ttyS0 -a
busybox setserial -a / dev / ttyS0

busybox
https:// busybox。ネット/ダウンロード/バイナリ/ 1.28.1-defconfig-multiarch /

7.2 strace
lsof | grep / dev / ttyS0
定着busyboxのは/ dev / ttyS0の
LS -l / procの/ 2848 / FD | grepのは/ dev / ttyS0の
straceの-p $ PID -tt -T -x -f = -e読み取り-eトレースを読ん= $ FDは、
物理シリアルポートの読み取りをキャッチ()、Straceは-fパラメーターを実行する必要があります。それ以外の場合、読み取り()のデータはキャプチャされません

。8UARTデータビットの数が5〜8である理由
8.1 オプション8.1履歴ソースは
テレタイプライターにあり、一度に26文字しか渡されませんでした。この5ビットのバイナリコード長32の文字は、そう5個の十分に伝達することができる限り、他の後ケースの6点に、コンピュータは、7つのASCIIコードで使用される
による文字列にライン通信の桁数が多いほど、時間がかかります。テレタイプライターのボーレートは非常に低いため、1ビット少ない値で送信すると、送信速度が少し速くなります

。8。1および0. MARKおよびSPACE 
テレタイプライターが発明されたときコンピューターはもちろんのこと、ブラウン管はありません。その際、メッセージを送信するには、まずパンチングマシンで紙テープに穴を開けます。データ1はMARKと呼ばれ、0はパンチされません。スペース、次に紙のリーダーで信号を送信します。信号を受信した後、受信機は最初に紙テープに穴を開け、次に紙テープがデコーダーに入力され、タイプライターに関連する単語が印刷されます。

8.3 URLの
概要RTTY通信
http://blog.sina.cn/dpool/blog/s/blog_5b9bc1120100tcbq.html
1915年のテレタイプライターが、初期の無線データ伝送の創始者であるMorkrumコードを入力しました
http://mini.eastday.com /bdmip/190615143756865.html

9つのURL
シリアルUART情報
https://www.lammertbies.nl/comm/info/serial-uart

串行数据传输.pdf
https://m.book118.com/html/2017/0504/104207215.shtm?from=mip

10略語
DLAB:除数ラッチアクセスビット
RDI:OMAP 8250受信データ割り込み
USB BHリセット:Bigger HammerまたはBrad Hosler、ウォームリセット、USB 3.0仕様が同じタイプのリセットを「ウォームリセット」と呼ぶ場所があるので混乱するかもしれませんその他の場所では「BHリセット」。「BH」リセットは「ビッグハンマー」リセットの略ですが、「ブラッドホスラー」の略でもあります。ブラッドはUSB 3.0バス仕様が開始された直後に亡くなり、彼らは彼にちなんでリセットと名付けることにしました。提案は仕様が確定する少し前に行われたため、表現に一貫性がありません
WHL:Python Wheel Package
Zadig:WinUSB、libusb-win32、およびlibusbK用の自動ドライバーインストーラーGUIアプリケーション

から:serial8250

公開された91件の元の記事 賞賛された17件 50,000回以上の閲覧

1 8250シリアルポートタイプの識別
Intel HWはDesignWare 8250を使用:
ドライバー/ mfd / intel-lpss-pci.c
ドライバー/ tty /シリアル/ 8250 / 8250_dw.c

IIRレジスタの上位2ビット、ビット7およびビット6は、8250シリアルポートの識別に使用されます。タイプ:
FIFO無し0--8250、
0 - 、そこSCR(スクラッチレジスタ)FIFOなし、16450、レジスタ
2から16550
。3 - 16550A

UART図1-1ポート・レジスタ変換表に

おすすめ

転載: blog.csdn.net/qq_23327993/article/details/104840264