加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 第1章AM335x串口技術分析
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

應用技術 | AM335x串口技術分析

2022/06/08
697
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

第1章AM335x串口技術分析

1.1簡介

HD-AM335X-IOT評估板采用TI AM3352處理器, 800MHz主頻,集成6路UART ( 提供RS-485驅動 ),支持GPS、GPRS、傳感器、采集模塊等功能擴展。2路CAN總線接口,實現車輛、工業(yè)現場控制數據的可靠傳輸。1路百兆網接口、1路千兆網接口,滿足電網、軍工等特殊環(huán)境內外網隔離與雙網冗余的應用需求,同時可通過光纖交換機實現數據高速上傳。

1.2串口簡介

AM335x共6路原生串口,所有原生串口的相關信息如表1.1所示。

表1.1  串口系統(tǒng)信息


    

/proc/tty/driver/目錄內的各個文件是Linux系統(tǒng)記錄串口各類事件的接口文件,內部記錄該驅動的基本信息,如中斷號、發(fā)送字節(jié)數、接收字節(jié)數、異常狀態(tài)觸發(fā)次數等,用戶根據針對這些信息可反向分析異常原因,從而確認問題解決思路,文件內容如圖1.1所示。

圖1.1  OMAP_SERIAL文件內容
    

所謂Linux驅動,實際是對硬件寄存器的讀寫操作封裝,將難以理解的硬件操作封裝成統(tǒng)一的便于管理的接口函數。AM335x的串口狀態(tài)寄存器如下所示。

    

RXFIFOSTS:接收緩沖區(qū)狀態(tài)位;
    

TXSRE:記錄發(fā)送保持和移位寄存器是否為空;
    

TXFIFOE:記錄發(fā)送保持寄存器是否為空;
    

RXBI:記錄接收緩沖區(qū)是否有Break觸發(fā);
    

RXFE:記錄接收緩沖區(qū)是否有幀錯誤;
    

RXPE:記錄接收緩沖區(qū)是否有奇偶校驗錯誤;
    

RXOE:記錄接收緩沖區(qū)是否有溢出錯誤;
    

RXFIFOE:記錄接收緩沖區(qū)是否有數據;
    

AM335x的原生串口驅動為kernel-source/drivers/tty/serial/omap-serial.c,驅動代碼內通過查找UART模塊的LSR(Uart Line Status)寄存器,將所有狀態(tài)信息記錄在up->port.icount內,如圖 1.2所示。例如rx記錄接收字節(jié)數,tx記錄發(fā)送字節(jié)數,break記錄UART_LSR_BI位觸發(fā)次數,parity記錄奇偶校驗錯誤,frame記錄幀錯誤觸發(fā)次數,overrun記錄緩沖區(qū)溢出錯誤,等。然后系統(tǒng)把這些錯誤計數反饋到對應硬件平臺的/proc/tty/driver/目錄內對應的驅動文件上。

圖 1.2  串口狀態(tài)記錄接口

 

在現場使用環(huán)境下,當出現串口報文異常時,有經驗的工程師可直接通過此文件分析各類錯誤。常見的錯誤關系與應對方法如下所示。

 

相關推薦

電子產業(yè)圖譜

以博士后為核心的嵌入式團隊,專注于為企業(yè)客戶提供嵌入式核心模塊、 邊緣計算網關、 嵌入式網關模塊、 PASS軟件等產品。