浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術資料 » 接口電路

基于Linux的PC104總線與CAN總線通信設計

發(fā)布時間:2008/8/16 0:00:00 訪問次數(shù):577

  1 引 言

  pc104嵌入式工業(yè)計算機由于其小尺寸結構、堆棧式連接、輕松總線驅動的特點得到了廣泛的應用。現(xiàn)場總線領域中,can總線得到了計算機芯片商的廣泛支持,他們紛紛推出直接帶有can接口的微處理器(mcu)芯片。

  帶有can的mcu芯片總量已經(jīng)達到1億3 000萬片,因此在接口芯片技術方面,can已經(jīng)遙遙領先于ff,pro-fibus,lonworks等其他所有現(xiàn)場總線。但是pc104總線不能與can總線直接通信,因此在can總線控制系統(tǒng)中難以運用。

  針對以上問題,以avr單片機為協(xié)處理器設計了pc104總線與can總線的轉換卡并且考慮到pc104嵌入式工業(yè)計算機上通常運行l(wèi)inux操作系統(tǒng)的特點,編寫了轉換卡linux下pc104總線訪問雙口ram的驅動程序。該轉換卡運用在工業(yè)控制系統(tǒng)中,實際表明可以穩(wěn)定可靠地運行。

  2 硬件部分

  pc104到can總線轉換卡的硬件系統(tǒng)框圖如圖1所示。在pc104總線與can總線的通信中,要考慮的主要問題是pc104總線與can總線數(shù)據(jù)同步問題。pc104總線與can總線的總線速度存在很大差異,針對這樣的問題通常采用的方法是使用雙端口ram或fifo作為緩沖器,這里使用雙端口ram作為數(shù)據(jù)緩沖,同時在雙端口ram中預留幾個字節(jié)作為atmega64處理器與pc104嵌入式計算機的軟握手信號,通過以上方法完成pc104總線與can總線的數(shù)據(jù)同步。epm7128為altera的cpld,這里使用cpld主要用于pc104到can總線轉換卡的地址譯碼。can總線通信選用sja1000 can總線控制器實現(xiàn),為了適應工業(yè)現(xiàn)場惡劣的電磁環(huán)境,在sja1000與pc82c250中經(jīng)過了光隔處理。

2.1 pc104總線與idt7134接口電路

pc104嵌入式計算機為了讀取雙端口ram idt7134的數(shù)據(jù)。首先將idt7134映射到pc104嵌入式計算機的存儲器空間,使用smemr*、smemw*作為idt7134的oer,r/w控制信號。另外利用cpld epm7128將pc104總線的高3位地址sa19、sa18、sa17譯碼作為idt7134的片選信號。

  2.2 atmega64與idt7134接口電路

  處理器atmega64采用的是地址線、數(shù)據(jù)線分時復用技術,因此需要進行地址鎖存。epm7128內(nèi)使用vhdl硬件描述語言設計了該地址鎖存器。atmega64與idt7134接口電路如圖3所示。

2.3 cpld epm7128內(nèi)部邏輯

cpld epm7128在整個設計中主要完成譯碼,與地址鎖存的功能。在quartusⅱ6.0環(huán)境下,通過vhdl硬件描述語言,完成上述功能。其程序源碼如下:

在上面的vhdl代碼中cssja1000為sja1000片選信號,cs7134l為idt7134左端口片選,cs7134r為idt7134右端口片選。

3 軟件部分

要實現(xiàn)pc104總線與can總線的數(shù)據(jù)通信,在上面的硬件設計中已經(jīng)提到采用的是雙端口 ram作為數(shù)據(jù)緩沖的方法,其中涉及在雙端口ram中開辟數(shù)據(jù)區(qū)作為pc104嵌入式pc機與atmega64的軟握手標志。握手過程要在pc104嵌入式pc機與atmega64的軟件程序中實現(xiàn),其過程如下:首先在雙端口ram中開辟兩個緩沖區(qū),分別用來緩沖can總線的收發(fā)數(shù)據(jù)。當pc104總線有數(shù)據(jù)發(fā)到can總線上時,先將數(shù)據(jù)寫到雙端口ram的can數(shù)據(jù)發(fā)送緩沖區(qū),然后向雙端口ram預留的標志字段寫入特定值,通告atmega64有數(shù)據(jù)要通過can總線發(fā)送,atmega64采用查詢的方式檢測這個標志字段,當檢測到標志字段的特定值時,就讀取雙端口ram的can數(shù)據(jù)發(fā)送緩沖區(qū),同時將讀到的數(shù)據(jù)發(fā)到can總線上。上述過程后,atmega64程序將標志字段復位。至此完成了pc104總線對can總線的數(shù)據(jù)發(fā)送。can總線對pc104總線的數(shù)據(jù)發(fā)送與此過程相反。

3.1 atmaga64處理器程序

atmaga64處理器對can總線進行底層的讀寫工作,同時將數(shù)據(jù)寫到雙端口ram idt7134 中,并將idt7134中的首存儲字節(jié)設為標志位,通知pc104嵌入式pc機有數(shù)據(jù)被更新,要求pc104嵌入式pc機對idt7134進行讀操作。基于以上的過程atmaga64處理器程序包括對sja1000初始化程序、sja1000中斷處理程序以及訪問idt7134的程序。

3.2 pc104總線訪問雙口ram的linux驅動程序

linux驅動從結構上分為3個部分:

(1)設備的配置和初始化,包括檢查設備的存在、狀態(tài),設備的注冊及相關設備驅動程序的初始化。一般這部分程序僅在初始化時調(diào)用一次,他包含在init_module()例程中。

(2)i/o請求服務程序主要通過系統(tǒng)調(diào)用,完成用戶的請求功能,如read,write等,設備的大多數(shù)操作都由i/o請求服務完成,主要包括read,write,ioct1等例程。

(3)中斷服務子程序,由系統(tǒng)接收所有硬件中斷,然后調(diào)用相應的中斷服務子程序。

在linux系統(tǒng)里,設備驅動以文件的方式出現(xiàn),因此設備驅動的接口就是一個文件系統(tǒng)的接口,該接口由一個數(shù)據(jù)結構struct file_operations{}來定義,該數(shù)據(jù)結構是整個虛擬文件系統(tǒng)的標準接口。因此首先定義了pc104總線訪問雙口ram驅動程序文件系統(tǒng)的數(shù)據(jù)結構。

對于pc104內(nèi)存段linux內(nèi)核在啟動時就建立了訪問這些地址的頁表,訪問他們的虛擬地址

  1 引 言

  pc104嵌入式工業(yè)計算機由于其小尺寸結構、堆棧式連接、輕松總線驅動的特點得到了廣泛的應用,F(xiàn)場總線領域中,can總線得到了計算機芯片商的廣泛支持,他們紛紛推出直接帶有can接口的微處理器(mcu)芯片。

  帶有can的mcu芯片總量已經(jīng)達到1億3 000萬片,因此在接口芯片技術方面,can已經(jīng)遙遙領先于ff,pro-fibus,lonworks等其他所有現(xiàn)場總線。但是pc104總線不能與can總線直接通信,因此在can總線控制系統(tǒng)中難以運用。

  針對以上問題,以avr單片機為協(xié)處理器設計了pc104總線與can總線的轉換卡并且考慮到pc104嵌入式工業(yè)計算機上通常運行l(wèi)inux操作系統(tǒng)的特點,編寫了轉換卡linux下pc104總線訪問雙口ram的驅動程序。該轉換卡運用在工業(yè)控制系統(tǒng)中,實際表明可以穩(wěn)定可靠地運行。

  2 硬件部分

  pc104到can總線轉換卡的硬件系統(tǒng)框圖如圖1所示。在pc104總線與can總線的通信中,要考慮的主要問題是pc104總線與can總線數(shù)據(jù)同步問題。pc104總線與can總線的總線速度存在很大差異,針對這樣的問題通常采用的方法是使用雙端口ram或fifo作為緩沖器,這里使用雙端口ram作為數(shù)據(jù)緩沖,同時在雙端口ram中預留幾個字節(jié)作為atmega64處理器與pc104嵌入式計算機的軟握手信號,通過以上方法完成pc104總線與can總線的數(shù)據(jù)同步。epm7128為altera的cpld,這里使用cpld主要用于pc104到can總線轉換卡的地址譯碼。can總線通信選用sja1000 can總線控制器實現(xiàn),為了適應工業(yè)現(xiàn)場惡劣的電磁環(huán)境,在sja1000與pc82c250中經(jīng)過了光隔處理。

2.1 pc104總線與idt7134接口電路

pc104嵌入式計算機為了讀取雙端口ram idt7134的數(shù)據(jù)。首先將idt7134映射到pc104嵌入式計算機的存儲器空間,使用smemr*、smemw*作為idt7134的oer,r/w控制信號。另外利用cpld epm7128將pc104總線的高3位地址sa19、sa18、sa17譯碼作為idt7134的片選信號。

  2.2 atmega64與idt7134接口電路

  處理器atmega64采用的是地址線、數(shù)據(jù)線分時復用技術,因此需要進行地址鎖存。epm7128內(nèi)使用vhdl硬件描述語言設計了該地址鎖存器。atmega64與idt7134接口電路如圖3所示。

2.3 cpld epm7128內(nèi)部邏輯

cpld epm7128在整個設計中主要完成譯碼,與地址鎖存的功能。在quartusⅱ6.0環(huán)境下,通過vhdl硬件描述語言,完成上述功能。其程序源碼如下:

在上面的vhdl代碼中cssja1000為sja1000片選信號,cs7134l為idt7134左端口片選,cs7134r為idt7134右端口片選。

3 軟件部分

要實現(xiàn)pc104總線與can總線的數(shù)據(jù)通信,在上面的硬件設計中已經(jīng)提到采用的是雙端口 ram作為數(shù)據(jù)緩沖的方法,其中涉及在雙端口ram中開辟數(shù)據(jù)區(qū)作為pc104嵌入式pc機與atmega64的軟握手標志。握手過程要在pc104嵌入式pc機與atmega64的軟件程序中實現(xiàn),其過程如下:首先在雙端口ram中開辟兩個緩沖區(qū),分別用來緩沖can總線的收發(fā)數(shù)據(jù)。當pc104總線有數(shù)據(jù)發(fā)到can總線上時,先將數(shù)據(jù)寫到雙端口ram的can數(shù)據(jù)發(fā)送緩沖區(qū),然后向雙端口ram預留的標志字段寫入特定值,通告atmega64有數(shù)據(jù)要通過can總線發(fā)送,atmega64采用查詢的方式檢測這個標志字段,當檢測到標志字段的特定值時,就讀取雙端口ram的can數(shù)據(jù)發(fā)送緩沖區(qū),同時將讀到的數(shù)據(jù)發(fā)到can總線上。上述過程后,atmega64程序將標志字段復位。至此完成了pc104總線對can總線的數(shù)據(jù)發(fā)送。can總線對pc104總線的數(shù)據(jù)發(fā)送與此過程相反。

3.1 atmaga64處理器程序

atmaga64處理器對can總線進行底層的讀寫工作,同時將數(shù)據(jù)寫到雙端口ram idt7134 中,并將idt7134中的首存儲字節(jié)設為標志位,通知pc104嵌入式pc機有數(shù)據(jù)被更新,要求pc104嵌入式pc機對idt7134進行讀操作。基于以上的過程atmaga64處理器程序包括對sja1000初始化程序、sja1000中斷處理程序以及訪問idt7134的程序。

3.2 pc104總線訪問雙口ram的linux驅動程序

linux驅動從結構上分為3個部分:

(1)設備的配置和初始化,包括檢查設備的存在、狀態(tài),設備的注冊及相關設備驅動程序的初始化。一般這部分程序僅在初始化時調(diào)用一次,他包含在init_module()例程中。

(2)i/o請求服務程序主要通過系統(tǒng)調(diào)用,完成用戶的請求功能,如read,write等,設備的大多數(shù)操作都由i/o請求服務完成,主要包括read,write,ioct1等例程。

(3)中斷服務子程序,由系統(tǒng)接收所有硬件中斷,然后調(diào)用相應的中斷服務子程序。

在linux系統(tǒng)里,設備驅動以文件的方式出現(xiàn),因此設備驅動的接口就是一個文件系統(tǒng)的接口,該接口由一個數(shù)據(jù)結構struct file_operations{}來定義,該數(shù)據(jù)結構是整個虛擬文件系統(tǒng)的標準接口。因此首先定義了pc104總線訪問雙口ram驅動程序文件系統(tǒng)的數(shù)據(jù)結構。

對于pc104內(nèi)存段linux內(nèi)核在啟動時就建立了訪問這些地址的頁表,訪問他們的虛擬地址

相關IC型號

熱門點擊

 

推薦技術資料

耳機放大器
    為了在聽音樂時不影響家人,我萌生了做一臺耳機放大器的想... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡技術有限公司
付款方式


 復制成功!