91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 其它綜合

嵌入1-Wire主機

發布時間:2007/8/28 0:00:00 訪問次數:501

引言

1-Wire?主機DS1WM,稱作1WM,創建它是為了便于實現主機CPU通過1-Wire總線與器件進行通信,而無須涉及位時序操作。本應用指南闡述如何將1-Wire主機(1WM)嵌入到用戶ASIC設計之中。本文提到的DS89C200只是一個理論上的微控制器,另外,假定讀者已經具備了1-Wire主機DS1WM和1-Wire協議的一般知識。如欲了解更詳細信息,請參閱[1] Book of Button Standards和[2] DS1WM數據資料。

結構


DS1WM排列象一個頂級的甲胄,連接四個子模塊,構成一個完整的單元。在這個頂級的甲胄中并沒有HDL代碼。四個子模塊分別是:one_wire_interface、one_wire_master 、clk_prescaler和one_wire_io。對于那些不需要時鐘分頻器的應用,如果提供外部1MHZ時鐘源作為clk_1us 時鐘信號,就可以省去預分頻器模塊(如DS1WM數據資料中的τ注釋,輸入時鐘指定在0.8MHz至1.0MHz之間)。

單總線輸入輸出模塊為DATA總線和DQ提供雙向信號。在大多數應用中,DQ信號是一個I/O引腳。如果是這種情況,DQ引腳驅動器必須是一個漏極開路引腳,且具有合適的ESD保護(參見圖1)。另外,如果外圍器件所使用的上拉電壓高于1WM電源電壓,則引腳驅動器還必須承受這樣的超限電壓,且不能使用鉗位二極管。Dallas建議采用輸出阻抗100Ω的驅動器(Q1),以及一個4.7kΩ的外部DQ上拉電阻至芯片VCC。為保證芯片能夠正常工作,芯片VCC必須高于1-Wire從器件的高電平門限VIH。


 

圖1:DQ驅動(one_wire_io)

程序庫

Verilog源程序的編譯無需外部庫文件,而VHDL源程序則需要IEEE.std_logic_1164和work.std_arith庫文件。

連接下表列出了1 - Wire主機正常工作需要連接的引線。




如果系統沒有地址選通信號,/ADS可以接為低電平,使地址鎖存器直通。/EN信號應由地址譯碼邏輯產生,在外部連接至1-Wire主機模塊。如果1WM是數據總線上唯一的器件,則/EN可以接為低電平。連到CLK上的系統時鐘頻率必須在3.2MHz到128MHz之間。關于詳細的連接操作,請參考 [2]DS1WM11-Wire Master datasheet。

例程




下面是如何采用Verilog語言創建1-Wire主機例程的一個實例。xcpu產生的所有信號都滿足1-Wire主機的時間要求。由于在數據總線上不存在其他可尋址邏輯,所以/EN_就接為低電平。DQ_OUT信號直接連接至一個I/O引腳。

合成

該設計的合成非常簡單明了。建議采用自下而上的方法分別編譯各個子模塊,然后有選擇地在頂層進行編譯。系統時鐘信號和1us時鐘信號必須考慮一定的時序要求,異步控制信號如/WR、/EN、/ADS和MR也需要滿足一定的時序要求,clk_1us可能所需要的額外要求是不要在時鐘信號上插入緩沖器。在大多數情況下需要采用某種時鐘分配方案,如樹型結構時鐘。


 資源包括:源代碼、實例合成腳本以及Synopsys設計編譯器一起使用的Makefile文件。為了調用這些資源,有必要創建一個.synopsys_dc.setup文件,以定義目標合成庫文件。除此之外,還需要修改包含環境文件(名為"environment"),以指定器件所采用的目標庫文件,從而指定輸出驅動能力和輸入負載。這些實例腳本是非常粗略的,而實際的腳本和約束文件將由工程師創建,以滿足特定設計的時序要求。有必要提醒一下:1-Wire主機單元中的時序在設計上無法保證完全同步,這是因為DQ輸出同步于CLK信號,而總線時序僅在CPU使用CLK時鐘來產生/RD和/ADS信號時,才同步于CLK。  

本例設計是完全獨立的,已經被成功編譯為FPGA和ASIC的目標文件。當面向一個典型的ASIC目標庫文件合成時,本設計使用大約110個觸發器、3個鎖存器和1492個邏輯門。

引言

1-Wire?主機DS1WM,稱作1WM,創建它是為了便于實現主機CPU通過1-Wire總線與器件進行通信,而無須涉及位時序操作。本應用指南闡述如何將1-Wire主機(1WM)嵌入到用戶ASIC設計之中。本文提到的DS89C200只是一個理論上的微控制器,另外,假定讀者已經具備了1-Wire主機DS1WM和1-Wire協議的一般知識。如欲了解更詳細信息,請參閱[1] Book of Button Standards和[2] DS1WM數據資料。

結構


DS1WM排列象一個頂級的甲胄,連接四個子模塊,構成一個完整的單元。在這個頂級的甲胄中并沒有HDL代碼。四個子模塊分別是:one_wire_interface、one_wire_master 、clk_prescaler和one_wire_io。對于那些不需要時鐘分頻器的應用,如果提供外部1MHZ時鐘源作為clk_1us 時鐘信號,就可以省去預分頻器模塊(如DS1WM數據資料中的τ注釋,輸入時鐘指定在0.8MHz至1.0MHz之間)。

單總線輸入輸出模塊為DATA總線和DQ提供雙向信號。在大多數應用中,DQ信號是一個I/O引腳。如果是這種情況,DQ引腳驅動器必須是一個漏極開路引腳,且具有合適的ESD保護(參見圖1)。另外,如果外圍器件所使用的上拉電壓高于1WM電源電壓,則引腳驅動器還必須承受這樣的超限電壓,且不能使用鉗位二極管。Dallas建議采用輸出阻抗100Ω的驅動器(Q1),以及一個4.7kΩ的外部DQ上拉電阻至芯片VCC。為保證芯片能夠正常工作,芯片VCC必須高于1-Wire從器件的高電平門限VIH。


 

圖1:DQ驅動(one_wire_io)

程序庫

Verilog源程序的編譯無需外部庫文件,而VHDL源程序則需要IEEE.std_logic_1164和work.std_arith庫文件。

連接下表列出了1 - Wire主機正常工作需要連接的引線。




如果系統沒有地址選通信號,/ADS可以接為低電平,使地址鎖存器直通。/EN信號應由地址譯碼邏輯產生,在外部連接至1-Wire主機模塊。如果1WM是數據總線上唯一的器件,則/EN可以接為低電平。連到CLK上的系統時鐘頻率必須在3.2MHz到128MHz之間。關于詳細的連接操作,請參考 [2]DS1WM11-Wire Master datasheet。

例程




下面是如何采用Verilog語言創建1-Wire主機例程的一個實例。xcpu產生的所有信號都滿足1-Wire主機的時間要求。由于在數據總線上不存在其他可尋址邏輯,所以/EN_就接為低電平。DQ_OUT信號直接連接至一個I/O引腳。

合成

該設計的合成非常簡單明了。建議采用自下而上的方法分別編譯各個子模塊,然后有選擇地在頂層進行編譯。系統時鐘信號和1us時鐘信號必須考慮一定的時序要求,異步控制信號如/WR、/EN、/ADS和MR也需要滿足一定的時序要求,clk_1us可能所需要的額外要求是不要在時鐘信號上插入緩沖器。在大多數情況下需要采用某種時鐘分配方案,如樹型結構時鐘。


 資源包括:源代碼、實例合成腳本以及Synopsys設計編譯器一起使用的Makefile文件。為了調用這些資源,有必要創建一個.synopsys_dc.setup文件,以定義目標合成庫文件。除此之外,還需要修改包含環境文件(名為"environment"),以指定器件所采用的目標庫文件,從而指定輸出驅動能力和輸入負載。這些實例腳本是非常粗略的,而實際的腳本和約束文件將由工程師創建,以滿足特定設計的時序要求。有必要提醒一下:1-Wire主機單元中的時序在設計上無法保證完全同步,這是因為DQ輸出同步于CLK信號,而總線時序僅在CPU使用CLK時鐘來產生/RD和/ADS信號時,才同步于CLK。  

本例設計是完全獨立的,已經被成功編譯為FPGA和ASIC的目標文件。當面向一個典型的ASIC目標庫文件合成時,本設計使用大約110個觸發器、3個鎖存器和1492個邏輯門。

相關IC型號

熱門點擊

 

推薦技術資料

羅盤誤差及補償
    造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
民丰县| 仲巴县| 洞头县| 南部县| 长葛市| 阿克陶县| 庆安县| 清镇市| 庄河市| 开江县| 靖远县| 上饶市| 开封市| 萍乡市| 定安县| 榆林市| 石泉县| 上思县| 崇仁县| 海盐县| 延川县| 武冈市| 龙泉市| 宜兰县| 湘潭县| 台中市| 开封市| 沙河市| 凤凰县| 富裕县| 大足县| 温宿县| 句容市| 林州市| 独山县| 清水县| 游戏| 仙居县| 无棣县| 南江县| 宁南县|