999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于I2C 總線實驗設計

2020-10-09 08:30:20孫佳昊蔡艷婧胡傳志
實驗技術(shù)與管理 2020年1期
關(guān)鍵詞:信號實驗

宣 慧,孫佳昊,程 實,蔡艷婧,胡傳志

(1. 通富微電子股份有限公司,江蘇 南通 226000;2. 江蘇大學 計算機科學與通信工程學院,江蘇鎮(zhèn)江 212013;3. 南通大學 江蘇省專用集成電路設計重點實驗室,江蘇 南通 226000;4. 南通大學 信息科學與技術(shù)學院,江蘇 南通 226000;5. 江蘇商貿(mào)職業(yè)技術(shù)學院 電子與信息學院,江蘇 南通 226000)

I2C(inter-integrated circuit)總線,主要用于電路板內(nèi)集成電路之間的連接,是由PHILIPS 公司開發(fā)的一種同步串行總線協(xié)議。I2C 總線因為協(xié)議成熟、引腳簡單、傳輸速率高,已經(jīng)成為世界性的工業(yè)標準,被大多數(shù)的芯片廠家采用。嵌入式系統(tǒng)中常用該總線來連接存儲器[1-3]、傳感器[4-5]和交互設備[6-7]等,因此I2C 總線實驗就成了嵌入式系統(tǒng)實驗教學中極重要的一個環(huán)節(jié)。I2C 總線編程要點在于掌握I2C 總線的數(shù)據(jù)幀格式,本文以TI 公司的TM4C123GH6PM 微控制器通過 I2C 總線接口讀寫 LM75A 溫度傳感器為例,以TivaWare 函數(shù)庫中的I2C 總線API 函數(shù)為工具,研究I2C 總線的實驗設計方法

1 I2C 總線概述

1.1 I2C 總線特征

為了使硬件效益最大和電路最簡單,PHILIPS 公司開發(fā)了一個簡單的雙向兩線總線,實現(xiàn)有效的 IC之間控制,該總線稱為Inter IC 或I2C 總線[8],具有以下一些顯著特征。

(1)只要求兩條總線線路。一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL。

(2)對各器件的尋址是軟尋址方式,因此節(jié)點上沒有必需的片選線[9]。

(3)是一個真正的多主機總線,帶有沖突檢測和仲裁,防止多個主機同時開始數(shù)據(jù)傳輸時破壞數(shù)據(jù)。

(4)串行的8 位雙向數(shù)據(jù)傳輸,位速率在標準模式下可達100 kbit/s,快速模式下可達400 kbit/s,高速模式下可達3.4 Mbit/s。

1.2 I2C 總線上的設備

I2C 總線上的設備分為主機(也稱為主控器)和從機(也成為被控器),主機和從機都既可以是數(shù)據(jù)的發(fā)送方,也可以是數(shù)據(jù)的接收方。主機提供時鐘信號,對總線時序進行控制,一般由微控制器擔任主機;總線上除主機外的其他設備都是從機,一般來說是外圍器件。主機通過從機地址訪問從機,從機之間無法通信,任何數(shù)據(jù)傳輸都必須通過主機進行。在標準的I2C總線中,從機地址被定義為7 位,擴展I2C 總線允許10 位從機地址。

1.3 I2C 總線系統(tǒng)結(jié)構(gòu)

某一I2C 總線的系統(tǒng)結(jié)構(gòu)如圖1 所示,通過沖突檢測,主機1 在查看總線空閑的情況下(即主機2 不在使用總線),發(fā)送一個開始信號,啟動一次數(shù)據(jù)傳輸,先對從機尋址,再在總線上傳輸數(shù)據(jù)。數(shù)據(jù)以字節(jié)為單位,每傳送一個字節(jié)后都必須跟一個應答位,由接收方回答,所以I2C 總線上的數(shù)據(jù)幀為8 加1 的格式。

圖1 某一I2C 總線系統(tǒng)結(jié)構(gòu)圖

1.4 I2C 總線上的信號類型

I2C 總線上的信號類型有以下5 個:

(1)開始信號(START),由主機產(chǎn)生,用來建立通信,從此總線將處于忙狀態(tài),直至結(jié)束通信;

(2)停止信號(STOP),由主機產(chǎn)生,用來結(jié)束通信,此后總線將處于空閑狀態(tài);

(3)重新開始信號(RESTART),由主機產(chǎn)生,用于改變上次開始時所建立的數(shù)據(jù)傳輸方向或目的從機;

(4)應答信號(ACK),由接收方產(chǎn)生,表示收到數(shù)據(jù);

(5)非應答信號(NO ACK),由接收方產(chǎn)生,如果是從機作為接收方發(fā)送非應答信號,那么主機認為此次數(shù)據(jù)傳輸失敗;如果是主機作為接收方發(fā)送非應答信號,那么從機認為數(shù)據(jù)傳輸結(jié)束,不再往總線上放數(shù)據(jù)。

1.5 I2C 總線數(shù)據(jù)幀格式

I2C 總線上的數(shù)據(jù)幀格式如圖 2 所示,一個標準的I2C 通信由4 部分組成:開始信號、從機地址傳輸、數(shù)據(jù)傳輸和停止信號。開始信號后的第一個字節(jié)為尋址字節(jié),由7 位的從機地址加1 位方向位構(gòu)成,方向位為0 表示主機寫,方向位為1 表示主機讀。每傳送一個字節(jié)后都必須跟隨一個應答位,每次通信的數(shù)據(jù)字節(jié)數(shù)沒有限制,在全部數(shù)據(jù)傳送結(jié)束后,由主機發(fā)送停止信號,結(jié)束通信。

圖2 I2C 總線數(shù)據(jù)幀格式

2 硬件電路設計

實驗中,以TI 公司的TM4C123GH6PM 微控制器作為主機,以LM75A 溫度傳感器作為從機,建立I2C總線連接,TM4C123GH6PM通過I2C 總線讀取LM75A檢測到的溫度值。硬件電路見圖3。

圖3 硬件電路

2.1 TM4C123GH6PM 介紹

TM4C123GH6PM 是 TI 公司的 TM4C123x 系列的微控制器,工作主頻可達 80 MHz,采用 ARM Cortex-M4 浮點內(nèi)核。配備有4 個I2C 模塊,每個模塊既可以作為主機,也可以作為從機,本實驗中將I2C1模塊用作主機,其中SDA 和SCL 為引腳PA7 和PA6的復用功能[10]。

2.2 LM75A

LM75A 是一個帶有I2C 總線接口的溫度傳感器,只能用作從機。微控制器可以通過 I2C 總線直接讀寫其內(nèi)部寄存器:即溫度寄存器、配置寄存器、THYST寄存器和TOS 寄存器[11]。

除了以上 4 個寄存器以外,LM75A 還有一個 8位的指針寄存器,高 6 位等于0,低2 位是其他4 個寄存器的指針值。指針寄存器對用戶來說是不可訪問的,但通過將指針數(shù)據(jù)放置到總線命令中可以用來選擇需要讀寫的寄存器,其中00 是溫度寄存器的指針,01 是配置寄存器的指針,10 是THYST 寄存器的指針,11 是TOS 寄存器的指針。

溫度寄存器是16 位的只讀寄存器,其中D0—D6為全零,D7—D15 保存當前溫度值,這9 位以二進制補碼數(shù)據(jù)的形式存放分辨率為0.5 ℃的溫度值。其中D8—D15 為整數(shù)部分,D7 為小數(shù)部分。

LM75A 在總線上的7 位從機地址由兩部分構(gòu)成,其中低3 位由外部引腳A2、A1 和A0 的邏輯值定義,高4 位由內(nèi)部硬連線預先設置為“1001”,因此地址范圍是0X48—0X4F。實驗中將 A2、A1 和A0 全部接地,因此地址為0X48。

通過 I2C 總線讀取 LM75A 溫度寄存器的過程:第1 步,MCU 發(fā)送開始信號,并尋址LM75A,寫方式;第2 步,MCU 寫指針寄存器(00,指向溫度寄存器);第3 步,MCU 發(fā)送重新開始信號以改變數(shù)據(jù)傳輸方向,尋址LM75A,讀方式;第4 步,MCU 讀溫度寄存器的高8 位;第5 步,MCU 讀溫度寄存器的低8 位;第6 步,MCU 發(fā)送停止信號,釋放總線。讀取溫度寄存器見圖4。

圖4 讀取溫度寄存器

3 基于TivaWare 的程序設計

TivaWare 是一套廣泛用于控制各種TM4C 系列器件外設功能的驅(qū)動包,即驅(qū)動函數(shù)庫,其中的 I2C 庫提供了一些用于I2C 操作的API 函數(shù)[12]。程序設計中將用到以下函數(shù):

(1)I2CMasterSlaveAddrSet 用來發(fā)送開始信號、尋址字節(jié);

(2)I2CMasterDataPut 將數(shù)據(jù)寫入 I2C 主機數(shù)據(jù)寄存器;

(3)I2CMasterDataGet 從 I2C 主機數(shù)據(jù)寄存器讀取數(shù)據(jù);

(4)I2CMasterControl 控制主機模塊的發(fā)送或接收;

(5)I2CMasterBusy 查看主機是否在忙于發(fā)送或接收數(shù)據(jù);

參照圖4 中讀取溫度寄存器的數(shù)據(jù)幀格式,設計函數(shù)Read_LM75A 如下:

4 實驗結(jié)果

實驗中,每秒鐘讀一次LM75A,并將溫度值(包括高位字節(jié)和低位字節(jié))以十進制格式通過串行口發(fā)送到 PC 的超級終端。為了體現(xiàn)溫度的變化,實驗中用電吹風加熱 LM75A 的周邊環(huán)境,通過超級終端看到了緩慢遞增的溫度值,結(jié)果如圖5 所示。

圖5 超級終端輸出的溫度值

為了更清楚地表示溫度,可以將溫度寄存器的值轉(zhuǎn)換為攝氏度,高位字節(jié)(MSB)為整數(shù)部分;低位字節(jié)的 D7 位為小數(shù)部分,所以低位字節(jié)(LSB)為128 即 0.5 ℃,為0 即 0.0 ℃,將整數(shù)部分加上小數(shù)部分即得到溫度的攝氏度值。將圖5 的輸出結(jié)果轉(zhuǎn)換為攝氏度值的結(jié)果見表1。

表1 超級終端輸出的溫度攝氏度值

5 結(jié)論

實驗結(jié)果表明,該實驗實現(xiàn)了對I2C 總線的讀寫功能,該實驗的設計方法對實踐中I2C 總線的程序設計有一定借鑒意義。文中為了清楚闡明I2C 總線的讀寫時序,采用了查詢等待的模式,實際應用中為了提高系統(tǒng)的實時性,應該采用中斷模式。

猜你喜歡
信號實驗
記一次有趣的實驗
微型實驗里看“燃燒”
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
做個怪怪長實驗
孩子停止長個的信號
NO與NO2相互轉(zhuǎn)化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 97se亚洲综合在线天天| 国产精品吹潮在线观看中文| 老司机久久99久久精品播放| 最新加勒比隔壁人妻| 欧美一区精品| 一区二区三区在线不卡免费 | 亚洲欧美日韩中文字幕在线一区| 国内毛片视频| 男女性色大片免费网站| 青青草国产在线视频| 青青草原国产av福利网站| 亚洲精品视频在线观看视频| 91色在线观看| 欧美激情视频二区| 天天做天天爱夜夜爽毛片毛片| 亚洲有无码中文网| 免费人成视网站在线不卡| 色网站免费在线观看| 99人体免费视频| 99久久亚洲综合精品TS| 日韩一级毛一欧美一国产| 国产精品一区二区在线播放| 成人自拍视频在线观看| 婷婷综合缴情亚洲五月伊| 91精品人妻一区二区| 欧美国产日韩在线| 九九视频免费看| 色国产视频| 精品偷拍一区二区| 国产无码网站在线观看| 亚洲免费播放| 国产精品久久久久鬼色| 无码aⅴ精品一区二区三区| 在线精品亚洲国产| 国产免费好大好硬视频| 美女免费精品高清毛片在线视| 色婷婷电影网| 久久久国产精品无码专区| 国产无遮挡猛进猛出免费软件| 久久动漫精品| 国产一区二区福利| 日韩大片免费观看视频播放| 人妻丰满熟妇AV无码区| 亚洲无码在线午夜电影| 青青青国产视频| 国产日韩久久久久无码精品| 久久成人国产精品免费软件 | 性网站在线观看| 五月婷婷激情四射| 欧美另类精品一区二区三区| 国产欧美亚洲精品第3页在线| 欧美亚洲日韩中文| 视频一本大道香蕉久在线播放 | 四虎影视永久在线精品| 欧美精品aⅴ在线视频| 97视频在线精品国自产拍| 在线看免费无码av天堂的| 国产a网站| a级毛片免费网站| 好吊色妇女免费视频免费| 日本国产在线| 色天天综合久久久久综合片| 性网站在线观看| 久久99这里精品8国产| 内射人妻无码色AV天堂| 欧美www在线观看| av午夜福利一片免费看| 国产美女人喷水在线观看| 波多野结衣一区二区三区88| 国产成人精品在线| 欧美国产日韩在线观看| 18禁黄无遮挡免费动漫网站| 不卡无码网| 尤物成AV人片在线观看| 人人妻人人澡人人爽欧美一区| 中文字幕人妻无码系列第三区| 亚洲第一福利视频导航| igao国产精品| 亚洲人成高清| 999精品在线视频| 人妻无码中文字幕一区二区三区| 久久这里只有精品23|