本發(fā)明涉及數(shù)字電路系統(tǒng)通信領(lǐng)域,尤其涉及一種并行通信方法。
背景技術(shù):
近些年來,許多應(yīng)用把主機(如mcu)與從機(如fpga)配合起來成為最佳搭檔。比如,mcu負責系統(tǒng)初始化、參數(shù)和端口配置等低速功能,fpga負責數(shù)據(jù)處理、存取和傳輸?shù)雀咚俟δ?。那么此時mcu與fpga之間的通信問題變得非常突出。fpga屬于可編程器件,引腳的功能允許任意定義,引腳數(shù)通常也足夠多,而且,fpga本質(zhì)上是一種硬件,它能夠?qū)崿F(xiàn)嚴格的時序控制。因此,設(shè)計mcu與fpga通信總線的關(guān)鍵點或者說瓶頸在于mcu的特性?,F(xiàn)有的mcu由于把程序存儲器和數(shù)據(jù)存儲器集成到片內(nèi),已不需要再擴展外部存儲器,因此幾乎所有的mcu(尤其是低端mcu)都取消了傳統(tǒng)的地址總線和數(shù)據(jù)總線,引腳i/o均為標準的外設(shè)接口,此做法大大提高了mcu的易用性、高效性和靈活性。但諸多的標準外設(shè)接口并沒有一種是專門用于與fpga進行互聯(lián)的,因而通過控制普通i/o端口實現(xiàn)與fpga通信成為最簡單可行的方法。另外,由于高速、大容量的處理任務(wù)交給了fpga獨立完成,總線上并沒有高負荷的數(shù)據(jù)吞吐。因此它對于速度和實時性的要求不高,主要考慮操作簡單,易于實現(xiàn)。歸納起來,采用這種方法存在兩個約束條件,第一,mcu主要用于控制,引腳是mcu最珍貴的資源之一,通常沒有過多的引腳用于通信;第二,mcu用程序控制i/o口的方式來模擬總線時序,并非真正邏輯電路產(chǎn)生的并發(fā)時序,它不能嚴格控制信號間的時序匹配。
現(xiàn)有并行總線進行通信時存在或多或少的問題,現(xiàn)舉三種常用的各種芯片級通信并行總線為例:1)如圖5和圖6所示的pc機isa總線,其總線引腳數(shù)為30條,具體包括地址總線:a0-a15、數(shù)據(jù)總線:d0-d15、控制總線:cs#,rd#,wr#,其優(yōu)點在于時序環(huán)節(jié)較少,缺點在于總線引腳數(shù)多;2)如圖7和圖8所示的mcs-51單片機總線,其總線引腳數(shù)為20條,具體包括地址/數(shù)據(jù)總線:ad0-ad15、控制總線:ale,cs#,rd#,wr#,其優(yōu)點在于總線引腳數(shù)相對較少,缺點在于時序環(huán)節(jié)多;3)如圖9和圖10所示的hcs12單片機mebi總線,其總線引腳數(shù)為18條,具體包括地址/數(shù)據(jù)總線:ad0-ad15、控制總線:eclk,r/w#,其優(yōu)點在于總線引腳數(shù)最少,時序環(huán)節(jié)相對較少,缺點在于出現(xiàn)邏輯沖突(灰色部分)。
鑒于此,需要設(shè)計一種引腳數(shù)少、時序環(huán)節(jié)少、時序?qū)捤汕覠o邏輯沖突的并行通信方法。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題在于提供一種引腳數(shù)少、時序環(huán)節(jié)少、時序?qū)捤汕覠o邏輯沖突的并行通信方法。
為了解決上述技術(shù)問題,本發(fā)明公開了如下技術(shù)方案:一種并行通信方法,用于并行通信的總線連接在一主機與一從機之間,該總線包括一地址數(shù)據(jù)總線、一讀寫選擇線及一使能鎖存線,通信時,主機通過控制使能鎖存線的電平有效或無效,使從機進入或退出通信狀態(tài);主機通過控制所述讀寫選擇線的電平高低,使從機獲悉主機需要通過所述地址數(shù)據(jù)總線寫數(shù)據(jù)或讀數(shù)據(jù);寫數(shù)據(jù)時,主機改變所述讀寫選擇線的電平,使從機獲悉主機通過所述地址數(shù)據(jù)總線寫數(shù)據(jù)完畢以輸入主機輸出的寫數(shù)據(jù);讀數(shù)據(jù)時,主機改變所述讀寫選擇線的電平,使從機獲悉主機釋放所述地址數(shù)據(jù)總線完畢以輸出讀數(shù)據(jù)給主機。
進一步地,主機通過控制使能鎖存線的電平有效或無效,使從機進入或退出通信狀態(tài);主機通過控制所述讀寫選擇線的電平高低,使從機獲悉主機需要通過所述地址數(shù)據(jù)總線寫數(shù)據(jù),寫數(shù)據(jù)時,主機改變所述讀寫選擇線的電平,使從機獲悉主機通過所述地址數(shù)據(jù)總線寫數(shù)據(jù)完畢以輸入主機輸出的寫數(shù)據(jù)的具體步驟包括:
所述主機通過所述地址數(shù)據(jù)總線輸出地址;
所述主機控制所述讀寫選擇線的電平對應(yīng)為寫有效;
所述主機控制所述使能鎖存線的電平有效,所述從機檢測所述使能鎖存線的電平有效時進入通信狀態(tài),所述從機采樣所述主機輸出的地址并識別所述讀寫選擇線的電平以獲悉所述主機需要寫數(shù)據(jù);
所述主機通過所述地址數(shù)據(jù)總線寫入數(shù)據(jù);
所述主機寫數(shù)據(jù)完畢后改變所述讀寫選擇線的電平,所述從機檢測所述讀寫選擇線的電平改變時,通過所述地址數(shù)據(jù)總線采樣所述主機寫入的數(shù)據(jù);
所述主機控制所述使能鎖存線的電平無效,所述從機檢測所述使能鎖存線的電平無效時,退出通信狀態(tài)。
進一步地,主機通過控制使能鎖存線的電平有效或無效,使從機進入或退出通信狀態(tài);主機通過控制所述讀寫選擇線的電平高低,使從機獲悉主機需要通過所述地址數(shù)據(jù)總線讀數(shù)據(jù),讀數(shù)據(jù)時,主機改變所述讀寫選擇線的電平,使從機獲悉主機釋放所述地址數(shù)據(jù)總線完畢以輸出讀數(shù)據(jù)給主機的具體步驟包括:
所述主機通過所述地址數(shù)據(jù)總線輸出地址;
所述主機控制所述讀寫選擇線的電平對應(yīng)為讀有效;
所述主機控制所述使能鎖存線的電平有效,所述從機檢測所述使能鎖存線的電平有效時進入通信狀態(tài),所述從機采樣所述主機輸出的地址并識別所述讀寫選擇線的電平以獲悉所述主機需要讀數(shù)據(jù);
所述主機釋放所述地址數(shù)據(jù)總線;
所述主機釋放所述地址數(shù)據(jù)總線完畢后改變所述讀寫選擇線的電平,所述從機檢測所述讀寫選擇線的電平改變時,通過所述地址數(shù)據(jù)總線輸出數(shù)據(jù);
所述主機讀入所述從機輸出的數(shù)據(jù);
所述主機讀入數(shù)據(jù)完畢后控制所述使能鎖存線的電平無效,所述從機檢測所述使能鎖存線的電平無效時,釋放所述地址數(shù)據(jù)總線并退出通信狀態(tài)。
進一步地,所述主機通過控制使能鎖存線的電平有效或無效,使從機進入或退出通信狀態(tài)具體包括:
主機控制使能鎖存線的電平為低電平有效,從機進入通信狀態(tài);
主機控制使能鎖存線的電平為高電平無效,從機退出通信狀態(tài)。
進一步地,所述主機通過控制所述讀寫選擇線的電平高低,使從機獲悉主機需要通過所述地址數(shù)據(jù)總線寫數(shù)據(jù)或讀數(shù)據(jù)具體包括:
主機控制所述讀寫選擇線的電平為低電平時,從機獲悉主機需要通過所述地址數(shù)據(jù)總線寫數(shù)據(jù);
主機控制所述讀寫選擇線的電平為高電平時,從機獲悉主機需要通過所述地址數(shù)據(jù)總線讀數(shù)據(jù)。
進一步地,所述主機為一mcu、一dsp或一mpu。
進一步地,所述從機為一fpga或一cpld。
本發(fā)明的有益技術(shù)效果是:該并行通信方法中主機與從機之間通信的總線包括一地址數(shù)據(jù)總線及二控制總線,尋址空間一定時,該總線內(nèi)總線的數(shù)目少于現(xiàn)有大部分總線,對應(yīng)主機與從機上的引腳數(shù)也更少;且主機主動控制控制讀寫選擇線及使能鎖存線的電平,時序環(huán)節(jié)數(shù)更少,讀寫速度更快;通信時,主機通過控制讀寫選擇線及使能鎖存線的電平使從機獲悉主機的動作需求,主機一一完成寫數(shù)據(jù)或讀數(shù)據(jù)動作,通信時無嚴格的時間要求,時序更為寬松,避免發(fā)生邏輯沖突。
附圖說明
圖1是本發(fā)明一實施例主機寫數(shù)據(jù)的流程圖;
圖2是本發(fā)明一實施例主機讀數(shù)據(jù)的流程圖;
圖3是本發(fā)明一實施例的寫時序圖;
圖4是本發(fā)明一實施例的讀時序圖;
圖5是現(xiàn)有技術(shù)中pc機isa總線的寫時序圖;
圖6是現(xiàn)有技術(shù)中pc機isa總線的讀時序圖;
圖7是現(xiàn)有技術(shù)中mcs-51單片機總線的寫時序圖;
圖8是現(xiàn)有技術(shù)中mcs-51單片機總線的讀時序圖;
圖9是現(xiàn)有技術(shù)中hcs12單片機mebi總線的寫時序圖;
圖10是現(xiàn)有技術(shù)中hcs12單片機mebi總線的讀時序圖。
具體實施方式
為了更充分理解本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合示意圖對本發(fā)明的技術(shù)方案進一步介紹和說明,但不局限于此。
如圖1至圖4所示,在本發(fā)明中,并行通信方法包括連接在一主機與一從機之間用于并行通信的總線,該總線包括一地址數(shù)據(jù)總線、一讀寫選擇線及一使能鎖存線。在本實施例中,主機的尋址空間為64kb,總線中設(shè)有16條地址數(shù)據(jù)總線,1條讀寫選擇線及1條使能鎖存線,通過這18條線連接主機與從機即可完成通信,其總線數(shù)目與現(xiàn)有技術(shù)中的hcs12單片機mebi總線相同,但其少于現(xiàn)有技術(shù)中的pc機isa總線及mcs-51單片機總線的數(shù)目,可有效節(jié)省主機的引腳數(shù)。另外,使能鎖存線包括使能與鎖存兩個功能,其中,使能功能用以使主機與從機之間建立通信;鎖存功能用以使從機對主機輸出的地址進行采樣,以完成數(shù)據(jù)傳輸。
通信時,主機通過控制使能鎖存線的電平有效或無效,使從機進入或退出通信狀態(tài);主機通過控制讀寫選擇線的電平高低,使從機獲悉主機需要通過地址數(shù)據(jù)總線寫數(shù)據(jù)或讀數(shù)據(jù);寫數(shù)據(jù)時,主機改變讀寫選擇線的電平,使從機獲悉主機通過地址數(shù)據(jù)總線寫數(shù)據(jù)完畢以輸入主機輸出的寫數(shù)據(jù);讀數(shù)據(jù)時,主機改變讀寫選擇線的電平,使從機獲悉主機釋放地址數(shù)據(jù)總線完畢以輸出讀數(shù)據(jù)給主機。由于并行通信時,主機向從機傳輸?shù)刂芳皵?shù)據(jù),而從機只能向主機傳輸數(shù)據(jù),寫數(shù)據(jù)時,地址與數(shù)據(jù)的方向都是從主機流向從機,兩者信號方向一致;讀數(shù)據(jù)時,地址的方向是從主機流向從機,而數(shù)據(jù)的方向是從從機流向主機的,兩者信號方向不一致,此時容易出現(xiàn)主機輸出地址的同時從機正向主機輸出數(shù)據(jù),如此造成主機和從機搶占地址/數(shù)據(jù)總線而產(chǎn)生邏輯沖突。為了避免此邏輯沖突,在本發(fā)明中,通過主機控制讀寫選擇線及使能鎖存線的電平,從機檢測讀寫選擇線及使能鎖存線的電平獲悉主機的動作需求,使得主機與從機之間通信通暢,避免產(chǎn)生邏輯沖突。
在本發(fā)明中,主機與從機進行通信包括寫數(shù)據(jù)和讀數(shù)據(jù)兩個不同的過程。如圖1所示,主機需要通過地址數(shù)據(jù)總線寫數(shù)據(jù)時,主機與從機之間的通信方法步驟如下:
s100,主機通過地址數(shù)據(jù)總線輸出地址;
s101,主機控制讀寫選擇線的電平對應(yīng)為寫有效;
s102,主機控制使能鎖存線的電平有效,從機檢測使能鎖存線的電平有效時進入通信狀態(tài),從機采樣主機輸出的地址并識別讀寫選擇線的電平以獲悉主機需要寫數(shù)據(jù);
s103,主機通過地址數(shù)據(jù)總線寫入數(shù)據(jù);
s104,主機寫數(shù)據(jù)完畢后改變讀寫選擇線的電平,從機檢測讀寫選擇線的電平改變時,通過地址數(shù)據(jù)總線采樣主機寫入的數(shù)據(jù);
s105,主機控制使能鎖存線的電平無效,從機檢測使能鎖存線的電平無效時,退出通信狀態(tài)。
如圖2所示,主機需要通過地址數(shù)據(jù)總線讀數(shù)據(jù)時,主機與從機之間的通信方法步驟如下:
s200,主機通過地址數(shù)據(jù)總線輸出地址;
s201,主機控制讀寫選擇線的電平對應(yīng)為讀有效;
s202,主機控制使能鎖存線的電平有效,從機檢測使能鎖存線的電平有效時進入通信狀態(tài),從機采樣主機輸出的地址并識別讀寫選擇線的電平以獲悉主機需要讀數(shù)據(jù);
s203,主機釋放地址數(shù)據(jù)總線;
s204,主機釋放地址數(shù)據(jù)總線完畢后改變讀寫選擇線的電平,從機檢測讀寫選擇線的電平改變時,通過地址數(shù)據(jù)總線輸出數(shù)據(jù);
s205,主機讀入從機輸出的數(shù)據(jù);
s206,主機讀入數(shù)據(jù)完畢后控制使能鎖存線的電平無效,從機檢測使能鎖存線的電平無效時,釋放地址數(shù)據(jù)總線并退出通信狀態(tài)。
其中,讀寫選擇線及使能鎖存線的電平輸出均由主機控制,從機通過檢測讀寫選擇線及使能鎖存線的電平來判斷獲悉主機的動作,以配合主機完成通信,有效地避免出現(xiàn)雙方搶占地址數(shù)據(jù)總線而造成的邏輯沖突,通信更加暢通。
在其他一些實施例中,主機通過地址數(shù)據(jù)總線寫數(shù)據(jù)時,可對步驟s100與步驟s101的順序進行調(diào)換,亦可完成主機寫數(shù)據(jù)的動作;主機通過地址數(shù)據(jù)總線讀數(shù)據(jù)時,可對步驟s200與步驟s201的順序進行調(diào)換,此調(diào)換不影響主機與從機之間的通信。
實際工作時,可通過主機與從機之間的讀寫時序圖來詳細了解它們之間的通信過程。如圖3和圖4所示,在本實施例中,主機選用mcu實現(xiàn),從機選用fpga實現(xiàn),讀寫選擇線用符號rw表示,使能鎖存線用符號be#表示,輸出地址用a表示,數(shù)據(jù)用d表示,主機寫數(shù)據(jù)時對應(yīng)為低電平有效,讀數(shù)據(jù)時對應(yīng)為高電平有效,使能鎖存線為低電平有效,如圖3所示,寫時序的具體實施步驟包括:
時刻t1,mcu輸出地址a;
時刻t2,mcu置低rw;
時刻t3,mcu置低be#,此時fpga檢測到be#下降沿,鎖存地址a和rw,并識別rw=0,為寫動作;
時刻t4,mcu寫數(shù)據(jù)d;
時刻t5,mcu置高rw,此時fpga檢測到rw上升沿,采樣數(shù)據(jù)d;
時刻t6,mcu置高be#,fpga當檢測到be#高電平,表明時序結(jié)束。
其中,mcu置低rw,此時rw為低電平,即主機控制讀寫選擇線的電平為低電平,從機獲悉主機需要通過地址數(shù)據(jù)總線寫數(shù)據(jù);mcu置低be#,此時be#為低電平,即主機控制使能鎖存線的電平為低電平有效,從機進入通信狀態(tài);mcu置高rw,此時rw為高電平,即主機寫數(shù)據(jù)完畢;mcu置低be#,此時be#為低電平,即主機控制使能鎖存線的電平為高電平無效,從機退出通信狀態(tài)。
如圖4所示,讀時序的具體實施步驟包括:
時刻t1,mcu輸出地址a;
時刻t2,mcu置高rw;
時刻t3,mcu置低be#,此時fpga檢測到be#下降沿,鎖存地址a和rw,并識別rw=1,為讀動作;
時刻t4,mcu釋放地址/數(shù)據(jù)總線,即置為三態(tài);
時刻t5,mcu置低rw,此時fpga檢測到rw下降沿,輸出數(shù)據(jù)d;
時刻t6,mcu讀數(shù)據(jù)d;
時刻t7,mcu置高be#,fpga當檢測到be#高電平,釋放地址/數(shù)據(jù)總線,時序結(jié)束。
其中,mcu置高rw,此時rw為高電平,即主機控制讀寫選擇線的電平為高電平,從機獲悉主機需要通過地址數(shù)據(jù)總線讀數(shù)據(jù);mcu置高be#,此時be#為高電平,即主機控制使能鎖存線的電平為低電平有效,從機進入通信狀態(tài);mcu置低rw,此時rw為低電平,即釋放地址數(shù)據(jù)總線完畢;mcu置低be#,此時be#為低電平,即主機控制使能鎖存線的電平為高電平無效,從機退出通信狀態(tài)。
在其他一些優(yōu)選的實施例中,可根據(jù)實際需要設(shè)定讀寫選擇線的電平高低所對應(yīng)的動作及使能鎖存線的電平有效性,如可設(shè)計為:主機控制讀寫選擇線的電平為高電平時,從機獲悉主機需要通過地址數(shù)據(jù)總線寫數(shù)據(jù);主機控制讀寫選擇線的電平為低電平時,從機獲悉主機需要通過地址數(shù)據(jù)總線讀數(shù)據(jù)。主機控制使能鎖存線的電平為高電平有效,從機進入通信狀態(tài);主機控制使能鎖存線的電平為低電平無效,從機退出通信狀態(tài)。
本實施例通過主機控制讀寫選擇線及使能鎖存線的方法來模擬產(chǎn)生總線時序,使得主機與從機之間完成通信,通信時無嚴格的時間要求,時序?qū)捤?,且主機可以最快的速度完成電平控制及讀寫數(shù)據(jù)動作,且地址數(shù)據(jù)總線復用時采用了鎖存地址的方法,時序環(huán)節(jié)少,讀寫速度快。
另外,在其他一些優(yōu)選的實施例中,主機還可以采用dsp、mpu等控制器件,從機還可采用cpld等。
本發(fā)明的方案中,該并行通信方法中的總線包括有地址數(shù)據(jù)總線、讀寫選擇線及使能鎖存線,尋址空間一定時,其總線數(shù)目少于現(xiàn)有大部分總線,節(jié)約了主機與從機的引腳資源;且主機可以最快的速度完成電平控制及讀寫數(shù)據(jù)的動作,且地址數(shù)據(jù)總線復用時采用了鎖存地址的方法,時序環(huán)節(jié)較少,讀寫速度快,有利于數(shù)據(jù)傳輸;另外,主機控制讀寫選擇線及使能鎖存線的電平,從機通過檢測讀寫選擇線及使能鎖存線的電平以獲悉主機的動作需求,有利于通信的有序進行,主機一一完成寫數(shù)據(jù)或讀數(shù)據(jù)動作,通信時無嚴格的時間要求,時序更為寬松,避免邏輯沖突的發(fā)生。
上述優(yōu)選實施方式應(yīng)視為本申請方案實施方式的舉例說明,凡與本申請方案雷同、近似或以此為基礎(chǔ)作出的技術(shù)推演、替換、改進等,均應(yīng)視為本專利的保護范圍。