基于A(yíng)T89C5131的接口設計
1.3 SPI端口特性及SPI通信設計
本文引用地址:http://dyxdggzs.com/article/273498.htmAT89C5131的SPI模塊允許在McU和其他外圍設備之間實(shí)現全雙工、同步、串行通信,它能以配置為主或者從兩種操作模式提供可編程極性和相位串行時(shí)鐘,同時(shí)還提供8個(gè)可編程的主機時(shí)鐘率。SPI模塊包括4個(gè)端點(diǎn)(MOSI,MISO,SCK,SS),MOSI和MISO都是用來(lái)傳輸數據的,且每次只能傳輸1個(gè)字節的數據。不同的是,MOSI將數據由主機輸出從機輸入,而MISO正好相反。SCK信號用以使通過(guò)MOSI和MI-SO的數據輸人/輸出設備同步,它可以由主機驅動(dòng)產(chǎn)生8個(gè)時(shí)鐘周期,用以完成一個(gè)字節在串行通道上的交換。SS用于從機的選擇,低有效。SPI模塊的配置和初始化可以通過(guò)寄存器SPCON完成,而數據的交換則需要使用寄存器SPSTA和SPDAT兩個(gè)寄存器,在軟件編寫(xiě)過(guò)程中,SPI能否正常工作主要取決于對上述3個(gè)寄存器的操作。
在該設計中,SPI被配置為主機模式;SS端口處于無(wú)效狀態(tài);AT89C5131通過(guò)MOSI端口向DSP傳輸參數及控制命令;DSP通過(guò)軟件設置P1.1(SS)端口的狀態(tài)表明數據是否正確接收,即若正確接收,則置P1.1為1,否則置P1.1為0;AT89C5131通過(guò)檢測P1.1的值來(lái)決定是否重傳數據。
2 系統實(shí)現
要使得上述設計在工程應用中得以實(shí)現,在硬件設計的基礎上。還需對接口進(jìn)行軟件設計。AT89C5131的軟件設計主要是USB固件程序的設計,包括系統的初始化,USB接口、UART接口和SPI接口數據的收發(fā)以及控制面板按鍵的功能實(shí)現幾個(gè)方面。軟件設計采用C語(yǔ)言編程,最后軟件通過(guò)FLIP下載到AT89C5131芯片中。這里所采用的編譯環(huán)境為KeilμVision 3軟件設計平臺。在具體的工程實(shí)現過(guò)程中,也遇到了一些問(wèn)題,但經(jīng)過(guò)反復的修改及調試,這些問(wèn)題都得到了很好的解決,其中主要有以下幾個(gè)方面:
按鍵功能實(shí)現控制面板按鍵的功能是通過(guò)電平觸發(fā)中斷實(shí)現的。在設計之初,手動(dòng)按下一次按鍵總會(huì )觸發(fā)多次中斷,對應的LED顯示總會(huì )很快的跳變,不能滿(mǎn)足按一次按鍵就顯示一個(gè)狀態(tài)的要求,于是筆者就在按鍵功能實(shí)現的程序中添加了等待函數,即每發(fā)生完一次中斷,就等待一段時(shí)間,經(jīng)過(guò)調試,上面的問(wèn)題沒(méi)有再出現。
USB通信系統 系統要求USB能夠快速、高效地實(shí)現通信,對于速度問(wèn)題可以通過(guò)Ping-pong模式得以解決。系統還要求USB實(shí)現雙向通信,為使其接收和發(fā)送數據互不干擾,所以選用了幾個(gè)端口實(shí)現不同數據的傳輸。
SPI端口通信 SPI端口工程實(shí)現的關(guān)鍵是速度和工作模式的匹配。在設計之初,AT89C5131的SPI工作于從機模式,其數據傳輸受到DSP的控制,由于其傳輸速度遠遠低于DSP中SPI端口的處理速度,所以每通過(guò)AT89C5131的SPI傳輸一組數據時(shí),DSP總需要通過(guò)軟件控制等待很長(cháng)一段時(shí)間,既便如此也不能保證數據得到正確接收。于是,后來(lái)就將AT89C5131的SPI工作模式修改為主機模式,由AT89C5131主動(dòng)控制數據的傳輸。然而實(shí)現雙向通信的關(guān)鍵是對SS信號的控制,在上述工作模式下,SS必須無(wú)效,Slave才能較可靠地向發(fā)送寄存器寫(xiě)數。
3 結 語(yǔ)
AT89C5131宜于構成低成本的USB控制和通信系統,能實(shí)現計算機與設備的通信,并可靈活選擇多種通信協(xié)議。文中介紹基于A(yíng)T89C5131的接口設計,主要是實(shí)現PC機與MCU以及MCU與DSP的通信,該設計已經(jīng)在工程實(shí)際中得到應用。經(jīng)過(guò)實(shí)踐檢驗,證明其合理且操作靈活,具有一定的實(shí)用意義。在設計過(guò)程中,深切體會(huì )到硬件設計與軟件設計的極大不同。編譯正確且邏輯沒(méi)有問(wèn)題的程序源代碼,將其燒寫(xiě)至芯片后,硬件電路并不一定能完全地實(shí)現所要求的功能,所以必須經(jīng)過(guò)反復的修改程序、燒寫(xiě)、調試,直至正確實(shí)現功能。
51單片機相關(guān)文章:51單片機教程
存儲器相關(guān)文章:存儲器原理
評論