亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種通用從機同步串行接口電路的設(shè)計

        2014-11-20 08:18:28徐中龍華竹平王瑋冰
        電視技術(shù) 2014年7期
        關(guān)鍵詞:數(shù)據(jù)格式指針寄存器

        徐中龍,華竹平,李 佳,王瑋冰

        (1.中國科學(xué)院微電子研究所,北京100029;2.江蘇物聯(lián)網(wǎng)研究發(fā)展中心智能傳感器工程中心,江蘇無錫214135;3.無錫(太湖)國際科技園管理委員會,江蘇無錫214135)

        隨著物聯(lián)網(wǎng)的興起,傳感器之間的通信起到了關(guān)鍵的作用。針對特定的物聯(lián)網(wǎng)應(yīng)用,合理的選擇傳感器通信協(xié)議,有利于改善傳感器系統(tǒng)的設(shè)計。傳感器系統(tǒng)中一般對傳感器數(shù)據(jù)傳輸速率要求不高,傳感器中廣泛使用的是同步串行數(shù)據(jù)接口:I2C總線接口和SPI總線接口。

        I2C總線協(xié)議是PHILIPS公司于1987年開發(fā)的雙向兩線制同步串行總線協(xié)議。由于它具有連線少、允許多主機控制、具有總線仲裁和同步等特點,被廣泛應(yīng)用到各個領(lǐng)域,并已經(jīng)成為一種世界性的工業(yè)標準[1]。I2C總線上數(shù)據(jù)的傳輸速率在標準模式下可達100 kbit/s,在快速模式下可達 400 kbit/s,在高速模式下可達 3.4 Mbit/s[2]。

        SPI總線協(xié)議是Motorola公司開發(fā)的高速、同步串行總線協(xié)議,一般需要3~4根總線完成數(shù)據(jù)傳輸,SPI接口的傳輸速度可以達到5 Mbit/s。SPI接口技術(shù)是一種高速高效率的串行接口技術(shù),主要用于擴展外設(shè)和進行數(shù)據(jù)交換[3]。

        目前廣泛使用的從機同步串行接口電路大多不具有兼容I2C總線和SPI總線數(shù)據(jù)傳輸?shù)墓δ堋S行臋C同時具有I2C總線接口電路和SPI總線接口電路,但兩種接口電路不僅浪費了內(nèi)部邏輯資源,而且占用較多的信號接口。

        本文通過分析I2C總線協(xié)議和SPI總線協(xié)議的特點,提出并設(shè)計了一種兼容I2C總線和SPI總線的通用從機同步串行接口電路,首先將該接口電路進行模塊劃分,然后對劃分后的模塊利用Verilog-HDL進行編碼并通過Modelsim進行功能仿真,最終在Quartus II中下載到FPGA中進行驗證,為傳感器中的接口電路設(shè)計提供參考。

        1 接口電路設(shè)計與實現(xiàn)

        1.1 設(shè)計要求

        以一款目標物體溫度探測傳感器為例,本文設(shè)計并實現(xiàn)了一種通用從機同步串行接口電路。為了滿足數(shù)據(jù)精度的需要,此傳感器中內(nèi)部寄存器數(shù)據(jù)為16 bit。此傳感器中有5個寄存器,分別為物體電壓寄存器、本地溫度寄存器、配置寄存器、制造商ID寄存器、器件ID寄存器,其中物體電壓寄存器、本地溫度寄存器、制造商ID寄存器、器件ID寄存器為只讀寄存器,配置寄存器的高八位為可讀寫部分,低八位為只讀部分。

        通用從機同步串行接口電路引腳如圖1所示。其中CS為從機片選信號,A1、A0為從機地址選擇端口,SCL為串行時鐘線,SDA為串行數(shù)據(jù)線。

        圖1 通用從機同步串行接口電路引腳

        1.1.1 接口電路用于I2C總線數(shù)據(jù)傳輸時的設(shè)計要求

        發(fā)送到SDA線上的每個字節(jié)必須為8位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制,但是每個字節(jié)后必須跟一個應(yīng)答位[4]。主機發(fā)送起始條件后,首先發(fā)送一個7位從機地址(用于選中當(dāng)前要使用的從器件),緊接著發(fā)送1位的數(shù)據(jù)傳輸方向位(R/W)以指示是從從器件讀取數(shù)據(jù)還是把數(shù)據(jù)寫入從器件,數(shù)據(jù)傳輸由主機產(chǎn)生的停止條件結(jié)束[5]。當(dāng)讀寫位即數(shù)據(jù)傳輸方向位(R/W)為1時,主機從傳感器讀取數(shù)據(jù);當(dāng)讀寫位即數(shù)據(jù)傳輸方向位(R/W)為0時,主機向傳感器寫入數(shù)據(jù)。

        其中A1、A0與I2C總線從機地址的對應(yīng)關(guān)系如表1所示。

        表1 A1、A0與I2 C總線從機地址的對應(yīng)關(guān)系

        為了滿足主機同傳感器內(nèi)部多個寄存器之間進行數(shù)據(jù)傳輸,主機對傳感器進行寫數(shù)據(jù)操作之前,必須首先向地址指針寄存器寫入地址,指定寫操作對應(yīng)的寄存器,然后再向地址對應(yīng)的寄存器寫入數(shù)據(jù);而主機對傳感器進行讀數(shù)據(jù)操作時,不向地址指針寄存器寫入地址,直接讀取地址指針寄存器相對應(yīng)的寄存器數(shù)據(jù)。地址指針與傳感器內(nèi)部寄存器的對應(yīng)關(guān)系如表2所示。接口電路將接收的8位地址指針數(shù)據(jù)存入地址指針寄存器,對傳感器內(nèi)部寄存器進行尋址。

        表2 利用I2 C總線進行數(shù)據(jù)傳輸?shù)牡刂分羔樑c寄存器的對應(yīng)關(guān)系

        1.1.2 接口電路用于SPI總線數(shù)據(jù)傳輸時的設(shè)計要求

        本次設(shè)計中采用的時鐘極性CPOL和時鐘相位CPHA[6]都為 1。

        主機通過SPI總線接口與傳感器內(nèi)多個寄存器進行通信時,主機利用不同的讀寫指令來識別傳感器內(nèi)部不同寄存器。傳感器先向主機發(fā)送地址寄存器對應(yīng)的寄存器數(shù)據(jù),緊接著傳感器接收主機發(fā)送的讀寫指令,如果為讀指令,傳感器則將對應(yīng)的寄存器數(shù)據(jù)發(fā)送給主機;如果為寫指令,傳感器則將接收的數(shù)據(jù)存入相應(yīng)的寄存器。

        利用SPI總線對該傳感器內(nèi)部寄存器進行讀操作時,接口電路將讀指令的低8位存入到相應(yīng)的地址寄存器,然后再讀取對應(yīng)寄存器數(shù)據(jù);利用SPI總線對該傳感器內(nèi)部寄存器進行寫操作時,由于該傳感器中只有配置寄存器可以寫,因此將寫狀態(tài)字的中間8位數(shù)據(jù)存入到配置寄存器。讀指令與內(nèi)部寄存器的對應(yīng)關(guān)系如表3所示,寫指令與寄存器的對應(yīng)關(guān)系如表4所示。

        表3 利用SPI總線進行數(shù)據(jù)傳輸時讀指令與寄存器的對應(yīng)關(guān)系

        表4 利用SPI總線進行數(shù)據(jù)傳輸時寫指令與寄存器的對應(yīng)關(guān)系

        1.2 通用從機同步串行接口電路模塊劃分

        根據(jù)上述通用從機接口電路的設(shè)計要求,本設(shè)計中對該傳感器接口電路劃分為3個模塊:起始和停止檢測模塊、并串和串并轉(zhuǎn)化模塊、控制模塊。該接口電路的結(jié)構(gòu)框圖如圖2所示。

        圖2 通用從機同步串行接口電路結(jié)構(gòu)框圖

        起始和停止檢測模塊:I2C總線或SPI總線數(shù)據(jù)傳輸起始位和停止位檢測。

        并串和串并轉(zhuǎn)換模塊:利用此模塊接收主機發(fā)送的串行數(shù)據(jù)和向主機發(fā)送串行數(shù)據(jù)。

        控制模塊:在起始和停止位的控制下向主機發(fā)送應(yīng)答位和對并串和串并轉(zhuǎn)換模塊的并串和串并轉(zhuǎn)換控制。

        1.3 接口電路設(shè)計實現(xiàn)

        根據(jù)接收和發(fā)送數(shù)據(jù)時序分析,利用SCL上升沿接收主機發(fā)送的數(shù)據(jù),利用SCL下降沿向主機發(fā)送數(shù)據(jù)。

        起始和停止模塊設(shè)計:在CS為1且SCL為1的情況下,SDA的下降沿為從機接口電路利用I2C總線數(shù)據(jù)傳輸?shù)钠鹗嘉?,SDA的上升沿為從機接口電路利用I2C總線數(shù)據(jù)傳輸停止位;在CS為0的情況下,從機接口電路利用SPI總線進行數(shù)據(jù)傳輸。

        并串和串并轉(zhuǎn)換模塊設(shè)計:利用SCL時鐘的上升沿讀入主機串行數(shù)據(jù)并轉(zhuǎn)化為并行數(shù)據(jù)存入傳感器內(nèi)部相應(yīng)的寄存器;利用SCL時鐘的下降沿將傳感器內(nèi)部寄存器數(shù)據(jù)串行輸出。

        控制模塊設(shè)計:該通用傳感器同步串行接口電路利用I2C總線進行數(shù)據(jù)傳輸時,每次只能傳輸一個字節(jié)和接收或發(fā)送一位應(yīng)答位;利用SPI總線進行數(shù)據(jù)傳輸時,每次可以傳輸16 bit數(shù)據(jù)。因此,控制模塊可以利用計數(shù)器來實現(xiàn)。

        由于本文傳感器內(nèi)部的寄存器為16 bit,因此該接口電路用于I2C總線數(shù)據(jù)傳送需要分為高低字節(jié)分別進行傳送。傳感器接口電路用于I2C總線數(shù)據(jù)傳輸支持的數(shù)據(jù)格式如下:

        a起始位+8 bit從機地址和讀標志位+8 bit高字節(jié)數(shù)據(jù)+8 bit低字節(jié)數(shù)據(jù)+停止位

        b起始位+8 bit從機地址和寫標志位+8 bit地址指針+停止位

        c起始位+8 bit從機地址和寫標志位+8 bit地址指針+8 bit高字節(jié)數(shù)據(jù)+停止位

        該接口電路用于SPI總線數(shù)據(jù)傳輸支持的數(shù)據(jù)格式如下:

        a 16 bit讀數(shù)據(jù)

        b 16 bit讀數(shù)據(jù)+16 bit寫指令

        c 16 bit讀數(shù)據(jù)+16 bit讀指令

        d 16 bit讀數(shù)據(jù)+16 bit讀指令+16 bit讀數(shù)據(jù)

        該接口電路控制模塊電路的狀態(tài)機如圖3所示。

        2 Modelsim對該設(shè)計進行功能仿真結(jié)果

        2.1 接口電路用于I2 C總線數(shù)據(jù)傳輸時的仿真

        圖4所示為該接口電路用于I2C總線數(shù)據(jù)傳輸時格式a的功能仿真結(jié)果,圖5所示為該接口電路用于I2C總線數(shù)據(jù)傳輸時格式c的功能仿真結(jié)果。

        圖3 通用從機同步串行接口電路控制模塊狀態(tài)機

        圖4 I2 C總線數(shù)據(jù)傳輸格式a的仿真結(jié)果(截圖去彩)

        圖5 I2 C總線數(shù)據(jù)傳輸格式c的仿真結(jié)果(截圖去彩)

        圖4、圖5中所示的信號從上向下為片選信號CS,從機地址選擇信號A1、A0,串行時鐘信號SCL,串行數(shù)據(jù)信號SDA,地址指針寄存器PntrReg,配置寄存器Confg。從圖4中可以看出,CS為1且A1和A0都為0時,主機向傳感器發(fā)送起始位之后,緊接著發(fā)送的是7位從機地址7’b100_0000和讀標志位1’b1,對傳感器執(zhí)行讀操作;下一個SCL時鐘下降沿傳感器向主機發(fā)送低電平應(yīng)答位;接下來傳感器在SCL下降沿傳感器向主機發(fā)送地址指針寄存器PntrReg數(shù)據(jù)8’b0000_0010對應(yīng)的配置寄存器Confg 16 bit數(shù)據(jù)16’b1100_1010_0111_0011。從圖5中可以看出,CS為0且A1和A0都為0時,主機向傳感器發(fā)送起始位之后,緊接著發(fā)送的是7位從機地址7’b1000000和寫標志位1’b0,對傳感器執(zhí)行寫操作;;下一個SCL時鐘下降沿傳感器向主機發(fā)送低電平應(yīng)答位;接下來主機向傳感器寄存器地址指針寄存器寫入數(shù)據(jù)8’b0000_0010;傳感器發(fā)送應(yīng)答位之后,主機向該地址指針對應(yīng)的配置寄存器的高8位寫一個字節(jié)數(shù)據(jù)8’b1100_1010。

        以上結(jié)果說明,該接口電路利用該I2C總線進行數(shù)據(jù)傳輸時,可以正確實現(xiàn)數(shù)據(jù)格式a和數(shù)據(jù)格式c。由于I2C總線數(shù)據(jù)傳輸中數(shù)據(jù)格式b可以被包含在數(shù)據(jù)格式c中,因此可以利用該接口電路實現(xiàn)本文中的I2C總線數(shù)據(jù)傳輸。

        2.2 接口電路用于SPI總線數(shù)據(jù)傳輸時的仿真

        圖6所示為該接口電路用于SPI總線數(shù)據(jù)傳輸時格式b的功能仿真結(jié)果,圖7所示為該接口電路用于SPI總線數(shù)據(jù)傳輸時格式d的功能仿真結(jié)果。

        圖6 SPI總線數(shù)據(jù)傳輸格式b的仿真結(jié)果(截圖去彩)

        圖7 SPI總線數(shù)據(jù)傳輸格式d的仿真結(jié)果(截圖去彩)

        圖6中所示的信號從上向下為片選信號CS,串行時鐘信號SCL,串行數(shù)據(jù)信號SDA,電壓寄存器Vobj,配置寄存器Confg。從上圖中可以看出,傳感器先向主機發(fā)送默認地址8’b0000_0000對應(yīng)的電壓寄存器Vobj16位數(shù)據(jù)16’b1000_1010_0010_0101,然后將接收16位寫配置寄存器指令16’b0000_1011_0101_0000,最后可以看出將8 bit數(shù)據(jù)8’b1011_0101存到配置寄存器的高八位中。圖7中所示的信號從上向下為片選信號CS,串行時鐘信號SCL,串行數(shù)據(jù)信號SDA,電壓寄存器Vobj,本地溫度寄存器Tamb。從圖7中可以看出傳感器內(nèi)部電壓寄存器Vobj數(shù)據(jù)為16’b1000_1010_0010_0101,本地溫度寄存器Tamb數(shù)據(jù)為16’b1000_0000_0000_1000。傳感器先通過SPI總線接口向主機發(fā)送Vobj寄存器數(shù)據(jù)16’b1000_1010_0010_0101,然后接收16位讀Tamb數(shù)據(jù)指令16’b1000_0000_0000_1000,然后傳感器將16位Tamb數(shù)據(jù)16’b 1000_0000_0000_1000發(fā)送出去。

        以上結(jié)果說明,該接口電路用于SPI總線數(shù)據(jù)傳輸時,可以正確實現(xiàn)SPI總線數(shù)據(jù)格式b和數(shù)據(jù)格式d。由于SPI總線數(shù)據(jù)傳輸中數(shù)據(jù)格式a和c可以被包含在數(shù)據(jù)格式d中,因此可以利用該接口電路實現(xiàn)本文所述的SPI總線數(shù)據(jù)傳輸。

        3 FPGA驗證

        本設(shè)計選用ALTERA公司的EP4CE15F17C8N器件。整個設(shè)計采用Verilog-HDL編碼,利用Quartus II軟件編譯后,將生成的pof文件通過AS口下載到FPGA中。通過單片機模擬I2C總線數(shù)據(jù)傳輸時的數(shù)據(jù)格式a、b、c 和 SPI總線數(shù)據(jù)傳輸時的數(shù)據(jù)格式 a、b、c、d,可以成功實現(xiàn)單片機通過I2C總線和SPI總線與FPGA同步串行通信。

        4 結(jié)束語

        本文根據(jù)I2C總線協(xié)議和SPI總線協(xié)議的要求,設(shè)計了一種兼容I2C和SPI總線通用從機同步串行接口電路。首先將其進行模塊劃分,然后對各個模塊分別設(shè)計與實現(xiàn),最后對電路進行仿真、驗證。與I2C總線接口電路、SPI總線接口電路相比,既可實現(xiàn)高速率數(shù)據(jù)傳輸,又可組成多主機、多從機的傳感器網(wǎng)絡(luò)。通用從機同步串行接口電路可通過I2C總線或SPI總線進行數(shù)據(jù)傳輸?shù)撵`活性的特點,在傳感器中具有應(yīng)用價值。

        [1]陳穗光,葛建華.I2C總線接口協(xié)議設(shè)計及FPGA的實現(xiàn)[J].山西電子技術(shù),2006(6):20-38.

        [2]沈華,王俞心.基于FPGA的I2C總線主控器的設(shè)計與實現(xiàn)[J].航空計算技術(shù),2007(6):109-111.

        [3]易志明,林凌,郝麗宏,等.SPI串行總線接口及其實現(xiàn)[J].自動化與儀器儀表,2002(6):47-50.

        [4]趙輝,董德存.I2C總線技術(shù)及其應(yīng)用實例[J].微型電腦應(yīng)用,2005(4):61-63.

        [5]胡文靜,李外云,劉錦高.I2C總線接口的FPGA實現(xiàn)研究[J].計算機工程與應(yīng)用,2005(12):116-118.

        [6]王玨文,金偉信,蔡兵,等.基于FPGA的SPI總線接口的實現(xiàn)[J].現(xiàn)代電子技術(shù),2010(14):102-104.

        猜你喜歡
        數(shù)據(jù)格式指針寄存器
        Lite寄存器模型的設(shè)計與實現(xiàn)
        偷指針的人
        娃娃畫報(2019年5期)2019-06-17 16:58:10
        在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
        電子測試(2018年1期)2018-04-18 11:52:49
        為什么表的指針都按照順時針方向轉(zhuǎn)動
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
        電測與儀表(2015年5期)2015-04-09 11:30:42
        論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
        DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測繪數(shù)據(jù)為例
        ARM Cortex—MO/MO+單片機的指針變量替換方法
        基于ArcGIS的規(guī)劃數(shù)據(jù)格式轉(zhuǎn)換研究
        国产亚洲精品日韩综合网| 色噜噜久久综合伊人一本| 成人欧美一区二区三区的电影| 天天综合久久| 日美韩精品一区二区三区| 国产自拍精品视频免费| 特级a欧美做爰片第一次| 国产精品11p| 青青草免费在线手机视频| 国产人妖网站在线视频| а√资源新版在线天堂| 亚洲成人观看| 午夜国产在线精彩自拍视频| 国产人妖乱国产精品人妖| 国产人妻久久精品二区三区特黄| 午夜短无码| 免费国产不卡在线观看| 久久无码字幕中文久久无码| 97无码人妻福利免费公开在线视频| 人片在线观看无码| 国产一区二区三区在线男友| 48久久国产精品性色aⅴ人妻| 一区一级三级在线观看| 国产免费99久久精品| 国产亚洲欧洲aⅴ综合一区| 国产精品天天在线午夜更新| 久久久久久久久中文字幕| 国产精品毛片极品久久| 精品无码国产一区二区三区av| 日韩高清毛片| 国产精品久久久看三级| 国产成人无码a在线观看不卡| 亚洲熟伦熟女新五十路熟妇| 国产精品无码不卡在线播放| 丰满老熟女性生活视频| 人与禽性视频77777| 国产精品久久码一区二区| 亚洲国产高清一区av| 97se亚洲国产综合在线| 91尤物视频在线观看| 亚洲一区久久久狠婷婷|