FPGA課程設計報告

2021-03-14 14:58:59 字數 5374 閱讀 6143

華北水利水電大學

north china university of water resources and electric power

電子設計自動化課程設計

題目i2c控制器

學院資訊工程學院

專業電子資訊工程

姓名學號指導教師

完成時間 2016.1.11

目錄摘要 1

引言 1

一.設計任務 2

1.1設計要求 2

1.2 設計目的 2

1.3 i2c匯流排簡介 2

1.4 lm75a簡介 2

二.系統設計詳述 3

2.1系統總體方案設計 3

2.2電路原理圖 4

三.系統硬體電路設計 4

3.1 溫度採集電路設計 4

3.2 lm75a詳述 4

四.verilog**設計 6

4.1 iic通訊模組 7

4.2狀態機的設計 8

4.3 溫度顯示模組 8

4.4 系統整合 9

五.**波形及說明 10

六.設計小組的分工及安排 10

七.收穫和體會 11

八.參考文獻 12

附錄: 12

摘要:設計了一種基於fpga和lm75a的溫度測量系統。採用數字溫度感測器lm75a檢測環境溫度,並利用lm75a自帶的iic匯流排介面傳輸資料,通過數碼管將溫度實時顯示出來.

關鍵字: fpga;lm75a ;iic匯流排

引言: 目前溫度測量主要通過微控制器來實現控制. 但微控制器是基於順序語言的, 其描述過程繁瑣, 訊號採集頻率受微控制器時鐘頻率的限制, 難於實現高速的溫度測量且不易**修改.

由於感測器多數採用的是分立元件, 如熱敏電阻、熱電偶等, 精度很低, 遠遠不能滿足實際使用所需要的高精度測溫要求. 筆者採用整合溫度感測器, 使傳統感測器和積體電路融為一體, 極大地提高了感測器的效能, 具有測溫精度高、復現性好、線性優良、體積小、熱容量小、穩定性好、輸出電訊號大等優點. 更重要的是採用現場可程式設計門陣列(fpga)實現溫度測量比採用微控制器大大改善了設計效果, 可實現高速的溫度測量.

文中闡述了fpga 的實現方法及如何利用fpga 器件實現多路溫度測量. 由於fpga 具有整合度高,高速、高效率, 內部有嵌入式陣列塊等特點, 易於實現fifo 和rom , 可使整個溫度測量系統主要由硬體實現.

一.設計任務

1.1設計要求:

利用veriloghdl 設計i2c 控制模組,並在magicsopc 實驗箱上實現。該控制模組,可以通過i2c 匯流排協議,實現匯流排資料傳輸,實現溫度感測器lm75a 的基本操作,並將溫度數值掃瞄顯示到數碼管上。

1.2 設計目的:

1. 了解序列匯流排

2. 熟悉i2c 協議

3. 學習lm75a 介面控制器編寫

4. singialtap **監測工具使用

1.3. i2c匯流排簡介

i2c匯流排是一種由philips公司推出的兩線式序列匯流排, 用於ic(integratedcircuit)器件之間的互連。它通過sda(序列資料線)及scl(序列時鐘線)兩根線在連到該匯流排上的器件之間傳送資訊, 並根據位址識別每個器件。每個器件有乙個唯一的位址, 而且都可以作為乙個傳送器或接收器使用(由器件的功能決定)。

i2c匯流排最主要的優點是其簡單性和有效性。由於介面直接在元件之上, 因此i2c匯流排占用的空間非常小, 減少了電路板的空間和晶元管腳的數量, 降低了互聯成本。i2c匯流排的另乙個優點是, 它支援多主控制(multimastering), 其中任何能夠進行傳送和接收的裝置都可以成為主裝置, 而當其從匯流排上接收資訊時,又成為接收器(也叫從裝置)。

乙個主控器能夠控制訊號的傳輸和時鐘頻率。在任何時間點上只能有乙個主控器。[4]連線多個i2c匯流排裝置的可能性意味著超過乙個以上主機可以同時嘗試初始化傳輸資料, 此時會產生仲裁過程進行匯流排使用權的裁決。

sda和scl均為雙向線路, 都通過乙個上拉電阻連線到電源電壓的正端, 當匯流排空閒時這兩條線路都是高電平。連線到匯流排的器件是通過線與的功能互連的, 因此輸出級應設計為漏極開路或集電極開路。i2c匯流排上資料的傳輸速率在標準模式下可達100kbit/s,在快速模式下可達400kbit/s, 在高速模式下可達3.

4mbit/s。[1]

1.4 lm75a簡介

lm75a 數字溫度感測器是一種內建帶隙溫度感測器, 應用σ- △模數轉換技術提供過熱檢測輸出的溫度監測器。lm75a 內部包含多個資料暫存器: ( 1)配置暫存器(conf) :

用來儲存器件的配置, 如: 器件工作模式、os 工作模式、os 極性和os 故障佇列; ( 2) 溫度暫存器(temp): 用來儲存讀取的數字溫度; ( 3) 設定點暫存器( tos&thyst) :

用來儲存可程式設計的過熱關斷和滯後限制。器件通過2 線的序列i2c 匯流排介面與控制器通訊。lm75a 包含乙個開漏輸出(os) , 當溫度超過程式設計限制的值時該輸出有效。

lm75a 有3 個可選的邏輯位址管腳, 使得同一匯流排上可同時連線8 個器件而不發生位址衝突。lm75a os 輸出有2 種可選的工作模式: os 比較器模式和os 中斷模式。

os 輸出可選擇高電平或低電平有效。溫度暫存器可存放乙個11 位的二進位制補碼, 從而實現0.125℃的精度。

在預設模式下,os 工作在比較器模式, 溫度閾值為80℃, 滯後75℃。[2]

二.系統設計詳述

2.1系統總體方案設計

fpga不像微控制器那樣逐條執行程式,而是以並行運算為主,以硬體描述語言來完成電路設計。因此,基於fpga的溫度測量系統具有執行速度更快,支援大量資料的高速處理等優點。應用verilog hdl(hardware description language)語言編寫的程式寫入fpga後,能形成實際電路。

fpga的內部程式是並行操作,所以硬體電路不會存在程式逐條執行的問題,且fpga硬體的資料處理速度非常快,可達到ns級別,因而本系統比微控制器系統能更迅速、實時地監測訊號的變化和及時更新資料。[5]本文將altera公司生產的fpga晶元ep2c35f672c8作為處理器。此晶元有475個可自由分配的i/o口連線外設很方便。

該晶元採用60 nm低功耗工藝,與微控制器系統相比,系統總功率消耗更低。在綜合考慮穩定性、可實現性以及精確性之後,提出了基於fpga和lm75a的溫度系統設計方案。該系統總體設計框圖1所示。

圖1 系統總體設計框圖

2.2電路原理圖

圖2 lm75a與fpga的介面電路

分析:由於sda、os與scl均為開漏輸出,必須加上拉電阻。a0a1a2為器件標識,000為lm75a的身份標識,故全部接地。

驅動電壓為1.8-5.4v,故可接3.

3v電壓源。

三.系統硬體電路設計

基於fpga和lm75a的測溫系統總體分為2個部分:溫度採集電路、溫度顯示電路。

3.1 溫度採集電路設計

溫度採集電路主要由lm75a組成(如圖3所示)。os與vcc介面接3.3 v電源,sda與scl分別接上拉電阻,與主控晶元iic介面相連,a0,a1, a2接地。

圖3 溫度採集電路圖

3.2 lm75a詳述

lm75a是具有iic介面的數字溫度感測器,管腳有8個,分別為a2, a1, a0, os, scl(序列時鐘線),sda(序列雙向資料線)vcc, gnd。其內部整合了很多器件,有iic匯流排介面、邏輯控制介面、帶隙溫度感測器、11 位模擬轉數字轉換器以及各種暫存器等。儲存器件的某些配置的暫存器(conf)、儲存數字溫度的暫存器(temp)也都包含在內。

lm75a測溫最大範圍為-55~+125 ℃,測溫精度0.125 ℃。scl和sda構成iic序列匯流排,可以實現多個器件之間的

主從式通訊;os為過熱關斷輸出介面,外部可連線檢測器或中斷線,當溫度超過設定溫度值時該輸出有效;vcc, gnd分別接系統電源和地;a0~a2是使用者自定義位址位,通過對a0, a1和a2的邏輯定義,可以使8個lm75a接在同一匯流排而不會有位址衝突。由於系統只採用了乙個測溫器件測量溫度,所以電路中a0, a1, a2接地,邏輯位址為0。溫度暫存器(temp)是乙個由高8 位位元組和乙個低8 位位元組組成的唯讀暫存器,其中僅有高11位被存放到temp資料,其餘低5位為0[8]。

temp資料的解析度為0.125 ℃,當讀到temp暫存器時,所有16位資料都提供給匯流排。若temp資料的最高有效位為邏輯0,則表示溫度是正值,溫度值(℃)=+(temp資料)*0.

125 ℃;若temp資料的最低有效位為邏輯1,則表示溫度是負值,溫度值(℃)=-(-temp資料+1)*0.125 ℃。在進行溫度採集前,fpga必須先對lm75a器件初始化,包括對lm75a的位址選擇,滯後暫存器、配置暫存器等的資料寫入等。

初始化完成之後,從lm75a器件的temp中讀取當前溫度。[2]

lm75a的功能框圖如下:

圖4 功能框圖

lm75a的管腳描述如下:

圖5 lm75a的管腳描述圖

表1 lm75a的管腳描述表

lm75a內部溫度暫存器工作原理如下:

表2 溫度暫存器工作原理

4.verilog**設計

fpga的設計輸入方法有原理圖和硬體描述語言(包括vhdl、ahdl、veriloghdl等)2種。傳統設計方法一般是採用直觀、容易理解的原理圖輸入。但是此方法移植性不好,當所選晶元公升級之後,所有設計的原理圖都需改動。

現在工程師常用的設計方法是用硬體描述語言完成所需設計,其特點主要表現為自頂向下設計。[3]相比於原理圖設計方法,自頂向下設計方法主要有以下優點:

1)從功能描述到物理實現完全符合設計者的設計思路。

2)設計可以重複利用,能應用在不同的產品設計中。

3)容易修改設計。設計者可以在門消耗以及時序2方面對fpga的結構進行比較,從而選擇最佳的設計方案。

4)設計周期短,效率高。採用自頂向下設計方法的效率可以達到傳統原理圖設計方法的2~4倍。鑑於自頂向下設計方法的諸多特點,本系統軟體部分採用自頂向下模組化設計思想進行設計,主要包括iic通訊模組、溫度顯示模組等。

4.1 iic通訊模組

fpga和lm75a兩者之間的通訊嚴格按照iic匯流排管理定義的規則。在lm75a檢測溫度時,須先對lm75a初始化,即對其配置暫存器寫入控制字進行工作模式的設定。寫配置暫存器時序如圖6所示。

圖6 讀溫度暫存器時序

通訊開始前,iic 匯流排一定要有空間或者不忙,這就要求匯流排上的器件必須釋放sda和scl線。主機啟動起始訊號s 後,開始對配置暫存器寫入要選擇的器件位址,硬體電路圖中的a0, a1, a2與地相接,因此器件的邏輯位址是「000」,再將「00000001」寫入暫存器位址指標,等待器件響應乙個系統時鐘週期後,再進行工作模式的寫入。完成上述步驟後,lm75a開始工作,若在正常工作模式下,每隔100 ms進行一次轉換(模數轉換),轉換的結果存放在temp暫存器中。

fpga讀取temp暫存器中的資料,對其處理後,就能得到溫度資料。fpga讀取temp暫存器中的資料也需嚴格按照iic 匯流排管理定義的規則。讀取溫度資料的時序圖如圖7所示。

FPGA課程設計報告

西安郵電學院 題目 採用ram實現計數器及fpga功能驗證 院系 電子工程學院 專業班級 學生姓名 導師姓名 起止時間 2012 06 18至2012 06 29 2012年 07 月 01 日 1 任務 用乙個10 8的雙口ram完成10個8位計數器,計數器的初值分別為1 10,時鐘頻率為1mhz...

球閥課程設計報告 ProE課程設計

一.課題名稱 球閥班級 12機自a1 小組成員 李軍帥 組長 李軍帥 二.球閥的功能和工作原理描述 1.球閥的工作原理 球閥的主要驅動原件是裝配於閥杆上端的扳手,球閥的啟閉元件是位於閥桿下端的球體。球閥的主要工作原理是 當給扳手施加某一轉矩,扳手驅動閥桿旋轉,閥桿將扳手的轉矩傳遞給位於閥桿下端的球體...

課程設計報告

數位電路課程設計報告 題目姓名 班級學號 同組人報告得分 南京航空航天大學金城學院 目錄一 課設內容及要求 1 設計任務 2 設計指標 二 設計方案 1 總體設計方案說明 2 模組結構與方框圖 三 電路設計與器件選擇 1 功能模組一 實際名 1 模組電路及引數計算 2 工作原理和功能說明 3 器件說...