国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

DSP虛擬I2C總線軟件包的設計及應用實例

發布時間:2010-6-25 16:35    發布者:zealot
關鍵詞: dsp , I2C , 總線軟件包
引言

數字信號處理器(DSP)在各領域中的應用已日趨廣泛,其中TI(TEXAS INSTRUMENT)公司的TMS320系列芯片占據了主導地位。TMS320F206(簡稱F206)由于具有片內32K字的Flash,支持JTAG掃描端口的仿真調試,并支持程序的串行下載,便于開發設計及產品的軟件升級,因而在中高檔儀器開發中受到青睞。

DSP的處理速度雖然較高,但直接支持的I/O口線較少,控制能力相對較弱,因而與外部器件接口采用串行方式較為適合。常用的串行接口和串行總線有UART、I2C總線,由于I2C總線提供了較完善的總線協議,且接口電路簡單,因而得到廣泛的應用。目前,已有很多外圍器件支持I2C接口,但多數MCU并不直接支持I2C總線,因而采用I/O口線模擬I2C的方式成為一種通用解決方案。但由于I2C總線協議的復雜性及操作管理的特殊性,仍給此類方式的開發造成了較大不便。好在文獻中提出了一種按平臺模式設計的、適用于80C51的虛擬I2C總線軟件包,大大簡化了80C51的I2C接口程序設計,使用戶無需了解I2C總線協議的細節,即可實現相應的接口。文獻中也給出了一種用于MSP430單片機的軟件包。由于DSP尚無此類軟件包,為簡化DSP的此類I2C接口程序設計,本文參照文獻中的設計原則,設計了一種適用于TMS320C2XX系列DSP開發的軟件包。

1 虛擬I2C軟件包的設計

根據文獻中所提到的最佳包容性設計、后歸一化設計、前歸一化設計原則,軟件包進行了如下定義。

(1)適用范圍

① 適用主發送和主接收方式。I2C總線有4種工作方式:主發送、主接收、從發送、從接收。因實際DSP多工作于I2C總線的主方式,因而軟件包設計為主方式。

② 適用TMS320C2XX系列與I2C總線外圍器件的接口,支持對外圍器件N字節的讀寫,通信方式為對虛擬節點尋址后點對點的讀寫。

③ 模擬I/O口線可選擇4根通用I/O口線(I/O0~ I/O4)中的任意兩根。

(2)軟件包結構設計

TMS320C2XX系列產品,基本包括4根通用I/O口線I/O0~I/O4(由于XF僅能作為輸入口線,BIO僅能作為輸出口線,因而暫不考慮)。它們的輸入輸出方向由ASPCR的低4位來設定,相應口線狀態的設定或讀取由IOSR寄存器控制。但此處DSP與80C51有所不同,口線的輸入輸出狀態不是自動切換的,且ASPCR、IOSR寄存器都不支持位尋址方式,因而在進行I2C總線工作方式模擬時較為繁瑣。為避免所用寄存器其它狀態位的改變,需通過較多的與、或操作來改變指定I/O口線的狀態,因而本軟件包與80C51的虛擬I2C軟件包結構稍有不同。當然,這些均在軟件包內部完成,使用者不必了解具體細節,用戶接口同樣簡單易用。

① 軟件包組成。為模擬I2C總線的操作時序,軟件包中包括了2個宏定義和12個子函數。

(a)時序模擬子程序

Sendb--發送起始標志,啟動I2C總線;senda--發送確認標志;
Sendna--發送非確認標志;Sende--發送結束標志。

(b)操作模擬子程序

geta--接收確認標志;sendd--發送8位數據;
getd--接收1個字節數據。


(c)數據讀寫子程序

wrnbyte--寫入N字節;rdnbyte--讀取N字節。

(d)其它宏及子函數

subsendd--根據標志位C設置模擬數據口線的狀態;toggleclk--切換模擬時鐘口線狀態;
Xdelay--延時子程序;Sdainm--將模擬數據口線A配置為輸入口線;
sdaoutm--將模擬數據口線配置為輸出。

因DSP的工作頻率一般遠高于I2C總線的操作頻率,因而這里需專用的延時子程序降低模擬時鐘口線頻率。本文所給出的源程序為F206采用40 MHz晶振時的情況,用戶使用時可隨實際情況調整延時時間。

② 軟件包符號定義。軟件包中包括如下符號定義:

VSDA、VSCL--分別定義了模擬數據口線和模擬時鐘口線對應的屏蔽位,因DSP中對通用I/O口線的操作不能通過位操作來實現,因而僅能屏蔽位來定義,如采用IO3模擬數據線、IO2模擬時鐘線,則可定義IO3為08h、IO2為04h;

RAM0--為數據暫存用的臨時存儲單元;
RIO--為用于保存I/O口線當前狀態的存儲單元;
SLA--用于保存總線上節點地址并確定傳輸方向的存儲單元;
NUMBYTE--待發送或接收的字節數存儲單元;
MTD--發送數據緩沖區;
MRD--接收數據緩沖區。

以上符號中RAM0、RIO、SLA、NUMBYTE為頁內地址,與當前的頁指針DP內容設置有關;MTD、MRD為絕對地址,與DP內容無關。

③ 資源占用。使用了輔助寄存器AR0、AR1、AR2、AR6、ACC、ASPCR、IOSR等資源。

④ 應用接口。軟件包將wrnbyte、rdnbyte作為唯一的出口接口,用戶僅需正確設置對應儲存單元的內容,調用相應子函數即可:

splk #SLAR/ SLAW,SLA;寫入傳輸節點地址及傳輸方向
splk #N,NUMBYTE ;寫入待傳輸字節數
;若輸出,設置輸出緩沖區內容
call wrnbyte/rdnbyte

3 應用實例

3.1 器件相關功能簡介

X1203是帶時鐘/日歷電路和兩個鬧鐘(報警)的低功耗CMOS實時時鐘芯片。提供了雙埠時鐘和報警寄存器,在讀寫操作期間也能精確工作。其工作電壓從2.5~6 V均可,工作電流小于1uA。時鐘使用低成本的32.768 kHz晶體輸入,以秒、分、時、日、星期、月和年為單位記錄時間,具有閏年自動矯正功能,并對少于31天的月份自動調整;可通過設置中斷標志按指定時間激活中斷引腳,滿足大多數用戶對定時器編程的需要。該芯片引腳結構如圖1所示(SOIC封裝)。



其中SCL為時鐘輸入端,數據隨該時鐘信號同步輸入器件或從器件輸出。此引腳上的輸入緩沖器始終激活。SDA端為雙向引腳,用于串行數據的輸入輸出;具有漏極開路,可與其它漏極開路或集電極開路輸出進行線"或";需上拉電阻,與SCL引腳配合,可實現400 kHz的2線I2C接口。VBack為備用電源輸入端,用于VCC出現故障時向器件供電。是中斷信號輸出端,可通過設置報警寄存器按指定時間在該端產生報警信號;漏極開路,低電平有效。X1、X2分別為反相放大器的輸入、輸出端;可在X1端接入32.768 kHz的方波基準,或在X1、X2端接入32.768 kHz的石英晶振,配置成片內振蕩器,在初始上電后至少有一個字節寫入RTC寄存器時,時鐘才開始計數。

X1203中的時鐘/控制寄存器(CCR)分5部分:2個8字節報警寄存器(Alarm0、Alarm1),1個1字節控制寄存器,1個8字節實時時鐘寄存器和1個1字節狀態寄存器。通過報警寄存器可設置報警發生的時間,控制寄存器可使能或禁止報警中斷信號的輸出,實時時鐘寄存器以BCD碼存儲了秒、分、時、日、星期、月和年,狀態寄存器中保存了用于報警狀態標志位及讀寫使能狀態位。其中狀態寄存器設置決定著數據是否能成功地寫入。該寄存器如表1所列。



BAT標識器件當前用VBack還是用VCC工作。AL1、AL0標識Alarm0、Alarm1是否實時時鐘匹配。RTCF表示實時時鐘是否失效,在總電源失效后該位置1。RWEL為寄存器寫使能鎖存,為0表示禁止,在任何寫時鐘/控制寄存器之前必須將該位置1。WEL為寫使能鎖存,低表示禁止,通過該位寫1、其它位寫0,可使該位置位;通過該位寫0、其它位寫0,可使該位清0。只有按規定順序設置RWEL和WEL,才能成功寫入CCR。

目前,很多DSP芯片尚不直接支持I2C的接口,F206也不例外,因而這里采用2根通用I/O口線模擬I2C接口。F206與X1203的接口采用如圖2所示的接口方案。



圖2中在X1、X2端接入32.768 kHz的石英晶振,將時鐘源配置為片內振蕩器。在VCC和VBACK之間通過二極管和電阻相連,并與地間加入1個0.47 F的大電容。這樣,在電源出現故障或系統電源關閉時,仍可靠VBACK端的大電容供電維持時鐘芯片的正常工作。它與F206間接口采用3根口線,這里采用IO2模擬通信用的時鐘信號,IO3作為數據輸入、輸出口線。端可根據用戶需要而定,若需要時鐘芯片產生中斷,可將該端接到F206的中斷口線上。注意其中的SDA端和端為漏極開路,必須加上拉電阻,否則不能正常通信。

3.2 X1203的讀寫操作

這里僅給出F206對X1203進行讀寫的基本流程,如圖3、圖4所示,分別為對時鐘芯片的讀、寫過程。其中進行寄存器寫時,須注意SR寄存器中WEL和RWEL的設置是否正確,即首先設置WEL有效,而后將WEL、RWEL都置1,否則數據將不能正確寫入。在寫結束后,應將WEL、RWEL置為無效,以免產生誤操作。



此外還須指出,在系統首次上電后(VBack和VCC都失效后),至少有一字節寫入RTC寄存器時,系統才開始工作。在實際使用中,應首先判斷SR中的RTCF位是否為1,若是,表明系統為首次使用或VBack和VCC都已失效,須對X1203至少進行一次寫入操作,使其正常計數。

時鐘芯片讀寫子程序清單如下:

.copy "init.h"
.copy "vector.h"

;以下為I2C軟件包中的符號定義

VSDA .set 0008h
VSCL .set 0004h
RAM0 .set 60h
SLA .set 61h
RIO .set 62h
NUMBYTE .set 63h
MTD .set 0100h
MRD .set 0120h
setc intm ;關中斷
clrc cnf ;映射塊 B0 到數據存儲區
ldp #0h ;頁指針設置為0
clrc sxm
;數據寫入使能程序段
splk #0deh,SLA
splk #3,NUMBYTE
lar ar0,#MTD
mar *,ar0
splk #0,*+
splk #03fh,*+
splk #02h,*+
call wrnbyte
splk #0deh,SLA
splk #3,NUMBYTE
lar ar0,#MTD
mar *,ar0
splk #0,*+
splk #03fh,*+
splk #06h,*+
call wrnbyte
;寫入數據程序段
splk #0deh,SLA
splk #9,NUMBYTE
lar ar0,#MTD
mar *,ar0
splk #0,*+
splk #030h,*+
splk #01h,*+
splk #02h,*+
splk #03h,*+
splk #03h,*+
splk #02h,*+
splk #01h,*+
splk #21h,*+
call wrnbyte
;禁止數據寫入程序段
splk #0deh,SLA
splk #3,NUMBYTE
lar ar0,#MTD
mar *,ar0
splk #0,*+
splk #03fh,*+
splk #0h,*+
call wrnbyte
;數據讀取程序段
splk #0deh,SLA
splk #2,NUMBYTE
lar ar0,#MTD
mar *,ar0
splk #0,*+
splk #030h,*+
call wrnbyte
splk #0dfh,SLA
splk #7,NUMBYTE
call rdnbyte
wait: b wait

結束語

I2C總線應用已日益廣泛,而其協議的復雜性和操作的特殊性又限制了推廣速度。本文介紹的一種基于DSP的虛擬I2C總線軟件包,簡化了TMS320C2XX與I2C器件間接口程序設計,用戶無需了解I2C總線協議的細節,僅需通過唯一的接口界面wrnbyte/ rdnbyte即可實現相應的接口。本文還給出了一個TMS320F206與時鐘芯片X1203間的接口實例,介紹了軟件包的使用方法,希望能供讀者參考。
本文地址:http://m.qingdxww.cn/thread-13733-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 福利一区在线观看 | 色花堂国产精品原创第一页 | 九九视频免费精品视频免费 | 欧美三级成人 | 欧美成人另类 | 免费日韩精品 | 日本看片网站 | 亚洲天堂视频在线播放 | 四虎影院的网址 | 大又大又粗又爽女人毛片 | 灰姑娘的炎热之夜 | 中文字幕日韩欧美 | 中文字幕精品一区二区三区视频 | 国产h在线| 深夜福利国产精品亚洲尤物 | 色综合久久久久久久久五月性色 | 婷婷综合网站 | 国产伦精品一区三区视频 | 日本视频免费高清一本18 | 国产免费色视频 | 国产成人毛片亚洲精品不卡 | 国产精品综合一区二区 | 9热这里只有真品 | 久久久精品久久久久久 | 色亚州| 狠狠插网站 | 久久久国产免费影院 | 欧美日韩精品免费一区二区三区 | 四虎影视884a精品国产四虎 | h视频在线观看免费 | 成人精品视频在线观看完整版 | 精品亚洲综合久久中文字幕 | 免费日韩在线观看 | 伊人99热| 欧美成人观看 | 久久综合九色综合桃花 | 成人在线免费视频观看 | 高清视频 一区二区三区四区 | 欧美图片自拍偷拍 | 欧美丝袜高跟鞋一区二区 | 色视频导航 |