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

查看: 5114|回復(fù): 2
打印 上一主題 下一主題

SPI實(shí)現(xiàn)單總線硬件控制器的理論研究和實(shí)現(xiàn)方法(菜農(nóng))

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2009-4-2 22:26:36 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: spi , 菜農(nóng) , 單總線 , 控制器 , 硬件
SPI實(shí)現(xiàn)單總線硬件控制器的理論研究和實(shí)現(xiàn)方法(菜農(nóng))

轉(zhuǎn)載本帖應(yīng)注明雁塔菜地: http://blog.ednchina.com/hotpower/
本例程未經(jīng)過(guò)實(shí)戰(zhàn)檢驗(yàn),若應(yīng)用于產(chǎn)品而出錯(cuò)者,菜農(nóng)不負(fù)任何責(zé)任,特此聲明.

菜農(nóng)HotPower@126.com  2008.2.29(四年等一回的日子) 于雁塔菜地

常用的單總線有2大類: 1-Wire和HDQ16

1-Wire和HDQ16都采用單線數(shù)據(jù)雙向通訊,特別是有些1-Wire系列器件甚至不需電源。
單總線和I2C,SPI相比接線簡(jiǎn)單,但時(shí)序要求很嚴(yán)格,一般采用IO模擬定時(shí)器輔助的方法.

做主機(jī)其缺點(diǎn)還不太明顯,若作為從機(jī)設(shè)備時(shí),IO模擬一般還需外部中斷協(xié)助.
最大特點(diǎn)是CPU占有率太高.甚至根本無(wú)法實(shí)現(xiàn).故雙機(jī)之間很少采用單總線通訊,
更別指望一主多從或多主多從通訊.

SPI實(shí)現(xiàn)單總線硬件控制器的接線方法很簡(jiǎn)單,為防止MOSI和單總線線與,可加二極管防止。

這樣加上拉電阻并短接MISO后即構(gòu)成單總線1-Wire或HDQ16.

一.單總線時(shí)序的研究:

單總線一般由3大時(shí)序構(gòu)成(簡(jiǎn)化):
1.總線復(fù)位
因?yàn)樵诳臻e時(shí),總線由上拉電阻拉到高電平,這個(gè)狀態(tài)很有"物理意義"---對(duì)從機(jī)充電.
此時(shí)從機(jī)實(shí)際是在等待或休眠狀態(tài),故必須要由外部喚醒.

為保證從機(jī)的喚醒和聯(lián)接的可靠及加速單線通訊的速率,故需長(zhǎng)時(shí)間的復(fù)位(拉低電平).
使其復(fù)位周期和數(shù)據(jù)周期拉大距離以便區(qū)分。

HDQ16的總線復(fù)位周期由190uS的低電平和45uS的高電平組成,在高電平期間不需從機(jī)應(yīng)答.
1-Wire的總線復(fù)位周期由480uS的低電平和480uS的高電平組成,在高電平期間可從機(jī)應(yīng)答.

1-Wire與HDQ16的最大不同在于總線復(fù)位周期里包含從機(jī)的應(yīng)答時(shí)序.

2.寫'0'
在空閑中總線被下拉(同步)就表示啟動(dòng)單總線的數(shù)據(jù)操作過(guò)程的開(kāi)始.
由于總線被下拉導(dǎo)致通訊而阻塞(線與),故本時(shí)序只能作為主機(jī)操作過(guò)程.讀回?cái)?shù)據(jù)恒為0.

3.寫'1'
這個(gè)操作實(shí)際是寫'1'和讀'0'及讀'1'三個(gè)時(shí)序的綜合.
因?yàn)門XD的開(kāi)漏輸出,故單總線實(shí)際就是51的準(zhǔn)雙向IO. 只有在此期間方可讀取從機(jī)數(shù)據(jù)。

將寫'0'和寫'1'時(shí)序進(jìn)一步合并后,即可實(shí)現(xiàn)單總線讀寫一體化操作.

二.SPI時(shí)序的研究:
SPI時(shí)序很簡(jiǎn)單,一般都支持4種模式. 主要由SS,SCK的開(kāi)始電平狀態(tài)。
這里我們只能采用模式3即SPI空閑時(shí),SS,SCK都為高電平。
由于要將SPI做單總線控制器,故不需要SS,SCK這2個(gè)硬件信號(hào)!!!但軟件必須設(shè)置SPI主機(jī)模式3。
這對(duì)于MCS/ARM/DSP等基本類同。以下只以SPI模式3舉例,而且是在主機(jī)模式下。

1.協(xié)議開(kāi)始
SPI本身是以SS的跳變開(kāi)始一幀信號(hào)數(shù)據(jù)的傳輸?shù)模瑪?shù)據(jù)位數(shù)一般為8位和16位。
但有的DSP的McBSP可以在128位內(nèi)進(jìn)行選擇。
從以下的分析中可以看出位數(shù)和分辨率的關(guān)系的。
即SS下降沿啟動(dòng)SPI時(shí)序.

2.數(shù)據(jù)發(fā)送和接收
在SCK節(jié)拍下,SCK的下降沿一般發(fā)送數(shù)據(jù),在上升沿接收數(shù)據(jù)。也有在同邊沿收發(fā)數(shù)據(jù)的。
這要看具體硬件配置了.

3.協(xié)議結(jié)束
在傳送數(shù)據(jù)期間,SS跳變到初始狀態(tài)后都會(huì)強(qiáng)行結(jié)束一幀數(shù)據(jù)的收發(fā).
即SS上升沿結(jié)束SPI時(shí)序.

三.SPI和1-Wire/Hdq16的不同點(diǎn)和共同之處
從以上分析可以看出它們的共同之處:
1.空閑狀態(tài)到工作狀態(tài)的切換都是采用拉低總線來(lái)喚醒從機(jī)以實(shí)現(xiàn)同步.(起始位S)
2.每位數(shù)據(jù)都是由一定寬度的高低電平組成.并嚴(yán)格保持一定的有效時(shí)間.(數(shù)據(jù)串D0D1..DX)
3.釋放總線結(jié)束表示數(shù)據(jù)的結(jié)束.(停止位P)

最大的不同在于"每幀"SPI是多位(5,6,7,8等)數(shù)據(jù)位,而單總線為一位數(shù)據(jù).
當(dāng)SPI數(shù)據(jù)位串為連續(xù)的0或1時(shí),就可組成一位單總線的數(shù)據(jù)位!!!
即該方法是用數(shù)據(jù)位數(shù)的寬度來(lái)湊夠單總線的時(shí)序脈寬.

四.實(shí)現(xiàn)方法舉例(硬件只要MOSI,MISO)
SPI和UART的不同在于它沒(méi)有起始位和停止位的高低電平的固定變化.
故控制數(shù)據(jù)位模擬高低電平更加隨意.但分辨率可能受到損失(8位SPI數(shù)據(jù)不如UART的一幀高)

以下只分析單總線DS18B20的實(shí)現(xiàn)方法,HDQ16等其他單總線類同
由于單總線的復(fù)位/應(yīng)答周期需要480+480=960uS,故每位SPI數(shù)據(jù)需要960/8=120uS即BPS=8333
由于從機(jī)的應(yīng)答脈寬為60~240uS,故可能收不到應(yīng)答信號(hào),不過(guò)在UART的104uS實(shí)戰(zhàn)中是可以收到的.

總之SPI湊數(shù)算法簡(jiǎn)單,即單總線需要的周期/SPI-幀收發(fā)的位數(shù)

注意SPI一般先發(fā)送最高位.而UART一般先發(fā)送最低位.

N=8)BPS=8300 T="120".48us  (1-Wire復(fù)位/應(yīng)答時(shí)序)
0x0f ->00001111 即4T個(gè)0,4T個(gè)1  波形: 低電平481.92uS,  高電平481.92uS   周期:963.84uS

N=8)BPS=133300 T="7".501us (1-Wire寫'1'/讀'0'/讀'1'時(shí)序)
0x7f ->01111111 即1T個(gè)0,7T個(gè)1  波形: 低電平7.501uS, 高電平52.507uS 周期:60.008uS

N=8)BPS=133300 T="7".501us (1-Wire寫'0'時(shí)序)
0x01 ->00000001 即7T個(gè)0,1T個(gè)1  波形: 低電平52.507uS, 高電平7.501uS 周期:60.008uS

五.程序?qū)崿F(xiàn)方法(待續(xù))

5.單總線的協(xié)議硬件控制器終成正果

由于采用了SPI作為單總線的協(xié)議硬件控制器,故在傳送期間不怕中斷,時(shí)序不會(huì)錯(cuò)亂.
沙發(fā)
發(fā)表于 2010-9-26 00:17:47 | 只看該作者
板凳
發(fā)表于 2015-2-7 10:23:16 | 只看該作者
支持一下

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本加勒比在线精品视频| 亚洲高清在线| 亚洲aⅴ久久久噜噜噜噜| 亚洲福利一区二区三区| 人人爱人人做| 日韩精品视频在线播放| 四虎国产在线| 奇米久久| 亚洲国产色图| 四虎精品永久在线| 欧美日韩国产一区二区三区不卡| 欧美一区二区三区视频| 一级毛片网| 青青视频网| 人人玩人人添人人澡欧美| 欧美福利一区| 日本三级网址| 日本成人a| 欧美日韩一区二区三区免费不卡| 欧美日韩中文字幕在线| 欧美亚洲国产日韩综合在线播放| 亚洲精品国产精品国自产| 亚洲免费在线观看| 亚洲成年www| 一级毛片免费在线播放| 亚洲免费福利| 亚洲欧美日韩一区高清中文字幕 | 四虎影院成人| 特级毛片免费看| 欧美日韩中文在线| 亚洲不卡在线| 亚洲成人h| 色综合久久久久久中文网| 欧美成人高清免费大片观看| 亚 洲 成 人 动 漫在线| 天堂中文字幕在线| 欧美激情视频一区| 色视频免费国产观看| 我想看一级毛片| 天天搞一搞| 欧美中文字幕第一页|