Note, PTZ Controller Decode Part 2

目前在 PTZ Camare 上用的 Protocol , 在 physical layer 上 通常 Baudrate 為 9600BSP, 4800BSP, 2400BSP, 1200BSP 這幾種
當 UART 使用 9600BPS
一個Bit 的Time length 為近似 104.17us, 0.5bit 則為 52.08us
4800BPS 則為 208.33us, 0.5bit 為 104.17us
2400BPS 則為 416.67us, 0.5bit 為 208.33us
1200BPS 則為 833.33us, 0.5bit 為 416.67us
因此倘若用 FPPA(www.padauk.com.tw)去 implement Software UART需要能在 52.08us state 裡面處裡一個input and output
目前板上使用 External Crystal 4MHz, 用 4M/16= 500K 的 Processor Core 處理相當於一個指令佔用2us執行時間
因此只要Implement Software 的 UART 須要的指令約小於 20個(2×20 =40us, 加上預留 Time Buffer) 就能應付需求
在 Padauk 上有一篇 App. Note 展示如何去實做一個UART
<PDK-APN-2006002_V001 Implement a Full Duplex Universal Asynchronous Receiver Transmitter ( UART ) Using the FPPA™ Family
 
它的Receiver 的基本流程
 
    1. Wait Startbits
      • 讀取RX pin, 若為開始(Level low)
      • 等待0.5bits 在確認一次
      • 確任完成則近入接收資料
    2. ReceiverData
      • 進入接收迴圈等待每個bits時間
      • 讀取RX pin到 Carry Flag
      • 使用SRC  指令存Carry 到 RxBuf
      • 直到資料完成
    3. copy data to buffer
      • 儲存RxBuf 到 FIFO
 
 
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: