210 likes | 375 Views
Fast Infrared Communication Port 快速紅外線通訊埠. 快速紅外線通訊埠簡介. Fast Infrared Communication Port ( FICP ) 。 採用半雙工方式傳輸資料 連接和紅外線( IrDA )發光二極體( LED )當收發器 調變方式: 4PPM ( four-position pulse modulation ) 和 UART 共用 GPIO 腳位,做為傳送或接收資料用. FICP 功能模組. 位元編碼 / 解碼器 序列到平行 (serial-to-parallel) 資料引擎 傳送 FIFO
E N D
快速紅外線通訊埠簡介 • Fast Infrared Communication Port (FICP ) 。 • 採用半雙工方式傳輸資料 • 連接和紅外線( IrDA )發光二極體(LED )當收發器 • 調變方式:4PPM(four-position pulse modulation) • 和UART共用GPIO腳位,做為傳送或接收資料用
FICP功能模組 • 位元編碼 / 解碼器 • 序列到平行(serial-to-parallel)資料引擎 • 傳送FIFO • 接收FIFO
訊號說明 • 收發器的致能和選擇速度,需由GPIO控制
FICP運作說明 • FICP重置後,處於禁能狀態 • 設定控制暫存器,FICP才能正常運作 • 預先載入0~128位元組到FICP傳送FIFO • FICP致能後,使用DMA做傳輸服務 • 資料調變方式--標準4PPM IrDA
4PPM調變 • 4PPM以4.0Mbps速率傳送資料 • 四個時槽(timeslot)稱為一個時片(chip ) • 一個時片編碼二個位元
4PPM調變(cont) • 四個2-bit pairings,稱為nibbles • 位元組中先傳送最低兩個位元
訊框格式 • 前置訊號+起始位元(optional)+位址(optional) +自訂控制碼+資料+CRC檢查碼+結束位元
位址欄位 • 傳送: • 發送器使用8-bit的地址欄來鎖定接收者 • 最多連接255個工作站,位址(0x00到0xFE) • 廣播位址0xFF,傳送訊息全部的工作站 • 接收: • FICP控制暫存器1(ICCR1) 接收地址 • FICP控制暫存器0(ICCR0)的AME位元決定位址搭配函式
控制欄位 • 非必須(optional) 8位元欄位 • 軟體自行性定義控制欄位代表涵義 • FICP不對控制位元組做編/解碼 • 地址和CRC之間的位元組都當成資料
Data Field • 長度從0到2045位元組 • 傳輸期間允許CRC監測所有的錯誤時,軟體必需決定資料的長度以增加每個框架(frame)的傳輸至最大值 • 接收不是8的倍數位元的資料欄位時,就會發出中止信號
CRC Field • FICP使用32位元的循環冗餘核對(Cyclic Redundancy Check)來偵測在傳輸時所發生的位元錯誤 • CRC是由位址、控制和資料欄位所產生
接收運作方式 • Hunt模式 • 接收器抓取一個位元組(四個時片),識別前置訊號 • 如非前置訊號則抓取下一個時槽訊號,重新判斷是否為前置訊號。 • 重複上述動作直到是前置訊號為止 • 識別起始旗標,如非起始旗標回到Hunt Mode • 四個時片為一個群組,解碼成一個位元組,並放置於5-byte臨時FIFO • 當臨時FIFO滿載時,傳送5筆資料給接收FIFO
Hunt模式 非前置位元組 |1001|1000|0000|1010|1000|1000|0000|1010|1000| 前置位元組 前置位元組 …. 連續16個前置位元組後, 離開Hunt模式
接收運作方式(Count) • IrDA限制了訊框長度需小於2047個位元組(包含地址和控制位元組) ,FICP無此限制 • 當接收FIFO到達觸發層級時(trigger level),產生中斷和DMA傳送請求 • 當FIFO滿載時,會遺棄新接到收的位元組
接收運作方式(Count) • 確認8-chip停止旗標後,接收邏輯電路計算CRC-32值 • 比較訊框CRC值和CRC-32值 • 如果CRC和CRC-32值不相同時, FIFO中最後一個位元組標記為CRC錯誤 • 如果無法發現停止旗標,會發出中止訊號
傳送運作方式 • FICP致能前,可以預先載入資料到傳送FIFO • FICP致能後,傳送器送出前置訊號(preamble) ,開始新的訊框 • 上述動作持續到傳送FIFO有資料為止 • 前置序文之後,依序是起始旗標、位址、自訂控制碼、資料、CRC檢查碼、結束位元 • 當傳送FIFO需要更多資料時,會送出中斷(設定中斷致能)和DMA服務請求
傳送運作方式(count) • 資料短缺( FIFO 沒有資料)的中斷視為 • 正常結束的訊框,接下來傳送邏輯計算CRC值 • 意外結束的訊框,傳送邏輯會送出一個中止指令,且中斷CPU。 • 傳送器持續送出中止指令直到FIFO裡有資料為止 • 接收設備可選擇忽略中止並且繼續接收資料或者通知FICP重新傳送中止的訊框
FICP Register Definitions • FICP有六個暫存器: • 三個控制暫存器 • 一個資料暫存器 • 二個狀態暫存器 • FICP不支援位元組或半字組(half-word)運算 • CPU讀取和寫入FICP暫存器必需是字組寬(work wide)