国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SPI總線的422接口設計

2015-01-29 08:35上海航天電子技術研究所姜麗梅
電子世界 2015年15期
關鍵詞:數據格式空閑寄存器

上海航天電子技術研究所 姜麗梅 孫 靜

基于SPI總線的422接口設計

上海航天電子技術研究所 姜麗梅 孫 靜

以SPI總線為基礎,本文介紹了一種SPI總線與422總線之間的轉換電路,同時給出了基于FPGA器件通過VerilogHDL 工程語言編程實現了一種常用數據格式的UART模塊,解決了工程應用中串口通訊的需求。

SPI總線;422總線;UART

引言

SPI(Serial Peripheral Interface)即串行外設接口總線是Motorola公司推出的一種同步串行接口技術,它具有高速、全雙工、協議簡單等優(yōu)點。與標準的串行接口不同,SPI是一個同步協議接口,全雙工通信,所有的傳輸都參照一個共同的時鐘,其傳輸速率可達幾Mb/S。

目前該總線已發(fā)展成為一種工業(yè)標準。但是測試工控機一般不支持SPI總線,為實現對使用SPI總線產品的測試,需要將SPI總線數據轉換成測試工控機可接收的數據格式,本文介紹一種SPI接口與同步422接口的轉換電路實現了兩種總線之間的數據交互。

1 SPI基本原理介紹

SPI總線分為主機(master)和從機(slave)兩部分,主機和從機之間通過4根信號線連接,包括SDI(從機輸入數據線),SDO(從機輸出數據線),SCLK(串行移位時鐘),CS(從機片選信號)。SDI和SDO用于串行接收和發(fā)送數據,高位在前,低位在后。

其工作原理為:當有數據需要在主機和從機之間傳輸時,主機控制CS輸出有效電平(低電平),SCLK輸出時鐘信號,主機和從機的數據在時鐘的上升沿或下降沿分別傳輸到SDI和SDO,在下一個時鐘沿,主機和從機接收數據。圖1是SPI的接口時序。

2 422總線簡介

圖1 SPI接口時序圖

圖2 SPI數據接收仿真波形圖

RS-422為全雙工串行數據通信接口標準,其優(yōu)點在于:(1)采用雙端差分輸入,總線的抗干擾能力強;(2)互連雙方的信號地分立,兩條信號線形成回路,避免了電平偏移;(3)輸出端采用雙端平衡驅動,其信號放大倍數高,信號傳輸距離遠。

3 詳細設計

隨著EDA技術的發(fā)展,FPGA已經在很多方面得到了廣泛應用,本文通過FPGA實現包括SPI接收模塊、SPI發(fā)送模塊以及422總線UART的設計,外圍通過NS公司的DS26LV31W和DS26LV32AW 實現422異步串行接口通訊。

為提高轉換效率,在SPI模塊與UART之間加入了1級FIFO緩存。整個設計結構緊湊、性能穩(wěn)定可靠。

圖4 RS-422數據發(fā)送波形圖

圖6 422數據接收仿真波形圖

3.1 SPI接收模塊的設計

SPI接收模塊主要功能為接收SPI總線數據,將其轉換成8位并行數據格式,轉換成422數據格式。具體轉換過程為:當板卡上電后,進入IDLE狀態(tài),當檢測到片選信號CS有效時,接收模塊通過移位寄存器將有效的SPI串行數據轉換成FIFO輸入端口的8位并行數據,同時對應一個8位數據產生FIFO的寫信號,將數據寫入FIFO。422發(fā)送模塊判斷FIFO是否為空,不空則從FIFO中取出數據,把8位并行數據變換成422串口形式發(fā)送出去。仿真波形如圖2所示。

3.2 422總線UART接口的設計

422異步串行接口一般采用專用的集成電路即UART實現,它們能實現較全面的串行通信功能,但在實際應用中通常只需要部分功能,造成一定資源的浪費。本文采用Verilog語言設計實現了1個簡單易用422幀格式的UART。

UART的幀格式包括空閑狀態(tài)(高電平有效),1位起始位(低電平有效),8位數據位,1位停止位(高電平有效)。字符的同步由起始位和停止位實現。

UART接口包括422接收模塊和422發(fā)送模塊。

422發(fā)送模塊按照422數據格式依次發(fā)出1位起始位,8位數據位,1位停止位。狀態(tài)轉移圖如圖3所示:

圖3 422發(fā)送狀態(tài)轉移圖

(1)空閑:狀態(tài)機檢測前級FIFO中有沒有數據,當有數據時就進入起始狀態(tài);

(2)起始:在該狀態(tài)下,發(fā)出1位低電平起始位,發(fā)送完畢后轉入數據狀態(tài);

(3)數據:發(fā)送8位數據位,發(fā)送完畢后,進入停止狀態(tài);

(4)停止:發(fā)送1位高電平停止位,發(fā)送后進入空閑狀態(tài),等待下次數據的到來。

仿真波形如圖4所示。

圖5 422接收狀態(tài)轉移圖

422接收模塊按照422數據格式首先通過檢測下降沿來判斷一幀422數據的到來,然后按照采樣時鐘對8位串行數據進行采樣,在寄存器中進行移位操作。

根據奈奎斯特定理,采樣時鐘至少為422速率的2倍。在本文中,為確保采樣到的每一位數據正確,采樣時鐘設置為422速率的16倍,當檢測到起始位時,對應一幀422傳輸,計數器cnt從0開始一直計到146,當cnt[3:0]=4’b0111時,此時基本處于當前數據位的中間位置,數據較穩(wěn)定,將該時刻的數據保存至移位寄存器,當cnt計到140,此時8位串行數據已經全部移至移位寄存器,把當前移位寄存器的數據寫入數據寄存器。具體狀態(tài)轉移如圖5所示。仿真波形如圖6所示。

(1)空閑:狀態(tài)機對輸入信號進行下降沿檢測,當檢測到下降沿時,狀態(tài)進入起始狀態(tài);

(2)起始:在該狀態(tài)下,檢測輸入信號,若起始位有效轉入數據狀態(tài),無效轉入錯誤狀態(tài);

(3)數據:將8位串行數據接收下來,轉入停止狀態(tài);

(4)停止:檢測停止位是否有效,若停止位有效,當前一幀數據接收zz完畢,轉入空閑狀態(tài),等待下一幀數據的到來,若無效,轉入錯誤狀態(tài);

(5)錯誤:摒棄錯誤幀的數據,狀態(tài)轉入空閑狀態(tài),準備接收下一幀的數據。

3.3 SPI發(fā)送模塊的設計

422數據轉換為SPI數據的過程為:板卡上電后,進入IDLE狀態(tài),當檢測到有效的422數據起始位后,422接收模塊從一幀422數據中提取出8位數據,把串行422轉換成8位并行數據,同時對接收的數據進行幀頭幀尾校驗,校驗正確的數據寫入FIFO。SPI發(fā)送模塊首先判斷FIFO中的數據個數是否滿足一幀SPI數據的長度要求,若滿足要求,則從FIFO中取出數據,轉換成SPI數據格式發(fā)送出去,若長度不滿足要求,則繼續(xù)等待,直至FIFO中有足夠長度的數據。

仿真波形如圖7所示。

4.結論

本文介紹的SPI與422總線數據互換的設計方法在具體的項目實踐中取得了良好的效果,通過該方法,使得SPI總線的使用范圍得到了大大擴展。

姜麗梅(1983—),女,碩士,現就職于上海航天技術研究院第八〇四研究所,從事通用嵌入式系統產品設計崗。

孫靜(1977—),女,碩士,現就職于上海航天技術研究院第八〇四研究所,從事通用嵌入式系統產品設計崗。

猜你喜歡
數據格式空閑寄存器
STM32和51單片機寄存器映射原理異同分析
Lite寄存器模型的設計與實現
“鳥”字謎
西灣村采風
彪悍的“寵”生,不需要解釋
一種融合多業(yè)務的信息化系統框架研究
WLAN和LTE交通規(guī)則
基于ArcGIS的規(guī)劃數據格式轉換研究
高速數模轉換器AD9779/AD9788的應用
一種可重構線性反饋移位寄存器設計
宁德市| 陵水| 镇雄县| 颍上县| 黑河市| 射阳县| 临颍县| 巴彦淖尔市| 五大连池市| 乐陵市| 原平市| 天柱县| 台州市| 遵义市| 芜湖市| 柳州市| 吉隆县| 丰镇市| 天等县| 泾川县| 丽水市| 偃师市| 武汉市| 镇雄县| 黔东| 科技| 佳木斯市| 监利县| 成武县| 郁南县| 富顺县| 宁德市| 长宁区| 锡林郭勒盟| 磴口县| 都安| 乐业县| 高尔夫| 集贤县| 蚌埠市| 巨野县|