<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于STM32嵌入式系統的智能控制網(wǎng)絡(luò )終端設計

基于STM32嵌入式系統的智能控制網(wǎng)絡(luò )終端設計

作者: 時(shí)間:2010-05-06 來(lái)源:網(wǎng)絡(luò ) 收藏
智能是實(shí)現智能化管理的設備。通常具有安全門(mén)禁和自動(dòng)化控制的基本功能。本文重點(diǎn)介紹的智能控制功能的和實(shí)現。
  1智能通信實(shí)現方案
  將與Internet連接起來(lái)實(shí)現遠距離信息獲取和控制功能的本質(zhì)是嵌入式本身能夠實(shí)現TCP/IP網(wǎng)絡(luò )。該協(xié)議的解決方案總體上可分為兩大類(lèi)。第一類(lèi)是直接在嵌入式設備上實(shí)現TCP/IP,使之直接連上Internet。這實(shí)質(zhì)上是由MCU及內部固化TCP/IP協(xié)議的芯片組成應用系統的核心,MCU可以直接撥號上網(wǎng),這種方法的硬件電路相對簡(jiǎn)單,也不需要中間環(huán)節的支持。但是由于使用了TCP/IP協(xié)議芯片,因此需要大容量的程序存儲器,而且要求MCU有較高的運行速度。同時(shí),應用程序師還必須熟悉TCP/IP協(xié)議,且軟件復雜,工作量大。目前,此方案的典型代表有SX-stack、Sciko公司的S7600A芯片;第二類(lèi)是使嵌入式設備經(jīng)過(guò)通信轉換后,再通過(guò)公用的TCP/IP轉接口(網(wǎng)關(guān)Gateway)與Intemet相連。目前有以下幾種方式:
  (1)通過(guò)使用獨立于微控制器MCU的專(zhuān)用的網(wǎng)絡(luò )接口芯片來(lái)完成單片機與網(wǎng)關(guān)間的協(xié)議轉換,并以此作為鏈接到Internet的橋梁。例如韓國WIZnet公司的W5100芯片;
  (2)用單片機控制以太網(wǎng)網(wǎng)卡進(jìn)行數據傳輸,此時(shí)必須加載TCP/IP協(xié)議到單片機中;
  (3)用代理協(xié)議來(lái)完成與網(wǎng)關(guān)間的協(xié)議轉換。
  本設計采用獨立于微控制器MCU的專(zhuān)用網(wǎng)絡(luò )接口芯片來(lái)實(shí)現TCP/IP協(xié)議,微處理器選擇F103VB,網(wǎng)絡(luò )芯片選擇W5100。二者通過(guò)SH接口進(jìn)行連接,其連接示意圖如圖1所示。
  2硬件平臺的設計
  2.1 總體設計
  本系統的硬件可分為采集模塊、處理模塊、鍵盤(pán)和顯示模塊、傳輸模塊、控制模塊和供電模塊等。其中采集模塊負責采集信息;處理模塊負責控制整個(gè)系統的工作,處理和存儲采集到的信息,控制模塊則可以進(jìn)行相應的控制;鍵盤(pán)和顯示模塊負責顯示相關(guān)信息以提示現場(chǎng)人員操作;網(wǎng)絡(luò )傳輸模塊負責信息與數據服務(wù)器進(jìn)行信息交互;供電模塊負責為整個(gè)系統供電。圖2所示是系統的結構框圖。通過(guò)這種結構可以自主開(kāi)發(fā)出一套高性?xún)r(jià)比、低成本、低功耗、開(kāi)發(fā)周期短、運行速度快、可靠性高、功能齊全、擴展性強的網(wǎng)絡(luò )控制終端。
  2.2 硬件實(shí)現
  本系統的處理器模塊選用ST公司剛剛推出不久的、ARM CortexTM-M3內核的新一代嵌入式芯片。這是一款專(zhuān)為嵌入式應用而開(kāi)發(fā)的內核。它帶有把中斷之間延遲降到6個(gè)CPU周期的嵌套向量中斷控制器,允許在每一個(gè)寫(xiě)操作中修改單個(gè)數據位的獨立位操作,可進(jìn)行分支指令預測、單周期乘法、硬件除法且有高效的Thumb 2指令集。這些改良技術(shù)使Cortex-M3內核具有優(yōu)異的代碼密度、實(shí)時(shí)性和低功耗性能。所有這些新功能都同時(shí)具有目前最優(yōu)的功耗水平,非常適合應用于長(cháng)時(shí)間工作的終端控制系統。
  本系統由+12 V電源輸入,同時(shí)經(jīng)過(guò)LM2575和78L09穩壓后分別得到5 V和9 V電壓,5 V再經(jīng)過(guò)SPX1117M3-3.3電壓穩壓轉換后得到3.3 V,這樣3.3 V、5 V和9V電壓即能夠很好地滿(mǎn)足內核、外設和外部電路的供電。系統時(shí)鐘源可采用外部晶振,內部PLL電路可以調整系統時(shí)鐘,使系統運行速度更快。為了提供性能優(yōu)越的電源監控性能,這里選取了專(zhuān)門(mén)的MAX811系統監視復位芯片,該芯片可以通過(guò)手動(dòng)控制系統的復位,同時(shí)還可以實(shí)時(shí)監控系統電源,一旦系統電源低于系統復位閥值,電路中的MAX811將產(chǎn)生一個(gè)140ms的復位脈沖信號來(lái)對系統進(jìn)行復位。
  系統網(wǎng)絡(luò )模塊選用的W5100芯片是一款多功能的單片網(wǎng)絡(luò )接口芯片。它內部集成有10/100Mbps以太網(wǎng)控制器,可支持自動(dòng)應答(全雙工/半雙工模式),主要用于高集成、高穩定、高性能和低成本的嵌入式系統。使用W5100可以實(shí)現沒(méi)有操作系統的Internet連接。W5100與IEEE802.310BASE-T和802.3u 100BASE-TX兼容。此外,W5100內部集成有全硬件的、經(jīng)過(guò)多年市場(chǎng)驗證的TCP/IP協(xié)議棧、以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY)。其硬件TCP/IP協(xié)議可支持TCP、UDP、ICMP、IGMP、IPv4、ARP、PPPoE和IGMP。同時(shí)可支持4個(gè)獨立的端口(Socket)通信,其內部16 K字節的發(fā)送,接收緩沖區可快速進(jìn)行數據交換,其最大通信速率可達25 Mbps。利用W5100提供的多種總線(xiàn)(并行總線(xiàn)和SPI總線(xiàn))接口方式可以很方便地與各種MCU連接??梢哉f(shuō),W5100器件的推出,大大簡(jiǎn)化了硬件電路設計,并可使微控制器系統在沒(méi)有操作系統的支持下實(shí)現單芯片接人Internet的理想。一般情況下,只需設置寄存器和存儲器,就可以通過(guò)W5100芯片進(jìn)行Internet奎接。
  在設計中,STM32F103與W5100可通過(guò)SPI接口進(jìn)行連接。STM32F103作為SPI主設備,W5100作為SPI從設備,并由STM32F103為W5100提供通信時(shí)鐘,二者的接口連接圖如圖3所示。
 但是,STM32F103在與W5100以SPI方式連接時(shí),應注意以下幾點(diǎn):
  (1)W5100的SEN引腳必須通過(guò)一個(gè)10 kΩ的電阻接到高電平,以選W5100的SPI接口方式;
  (2)W5100的D0~D7、A0~A14及CS、WR、RD可以懸空,只使用SCLK、SCS、MOSI和MISO四根信號線(xiàn);
  (3)W5100的INT引腳是中斷輸出,MCU需要根據該信號來(lái)判斷W5100的中斷狀態(tài);
  (4)LINKLED是W5100輸出的以太網(wǎng)物理層信號,MCU需要根據該信號判斷以太網(wǎng)的聯(lián)接是否正常。該信號一般需要上拉輸入到MCU;
  (5)W5100的SPDLED、FDXLED、COLLED可以根據選擇是否需要輸入到MCU。
  另外,系統中的存儲器模塊可以選用ST公司的64 MB的串行代碼存儲閃存M25P64。該器件的數據傳輸時(shí)鐘頻率為50 MHz,數據讀取吞吐量為50 MB/s,其簡(jiǎn)單的SPI串行外設接口可簡(jiǎn)化系統的設計。本硬件平臺使用兩片M25P64級聯(lián),可存儲128 MB的信息,圖4所示是其存儲電路,它完全可以滿(mǎn)足平臺信息采集存儲的需求。為方便人員察看,系統中的LCD屏可選用(114.0 mm×64.0 mm)。
  3 W5100的驅動(dòng)程序設計
  W5100的驅動(dòng)程序主要完成初始化和端口的數據通信等功能。
  通過(guò)SPI接口來(lái)配置W5100的寄存器一般具有固定的命令格式。根據SPI協(xié)議,SPI設備之間只有兩條數據線(xiàn)。因此需要定義操作碼(OP_Code)。W5100使用兩種操作碼:讀操作碼和寫(xiě)操作碼。除了這兩種代碼,它將忽略和不響應其它的操作碼。在SPI模式下,W5100只對“完整的32位數據流”進(jìn)行操作。這個(gè)32位的數據流包括1個(gè)字節的操作碼、2個(gè)字節的地址碼和1個(gè)字節的數據。其操作碼、地址和數據字節的傳輸都是高位(MSB)在前、低位(LSB)在后。也就是說(shuō),SPI數據的第一位是操作碼域的MSB,最后一位是數據域的LSB。W5100的SPI數據格式如表1所列。
  初始化W5100主要是設置W5100的公共寄存器,包括MR、IMR、RTR、RCR、GAR、SUBR、SHAR、SIPR、RMSR和TMSR。一般在使用W5100之前,都要對W5100進(jìn)行初始化。
  3.1數據通信的建立
  TCP是面向連接的通信方式,它首先必須建立連接.然后才能利用IP地址和端口號進(jìn)行數據通信。TCP有兩種建立連接的方式,一是通過(guò)服務(wù)器模式(被動(dòng)打開(kāi))等待連接請求;二是通過(guò)客戶(hù)模式(主動(dòng)打開(kāi))發(fā)送連接請求給服務(wù)器。本例采用TCP客戶(hù)模式。在建立TCP連接之前,一般都需要初始化端口,包括設置端口號、設置W5100為T(mén)CP模式和寫(xiě)入OPEN命令。端口初始化主要配置端口0的相關(guān)寄存器,包括:S0_PORT、S0_MR和S0_CR。
  圖5是W5100在TCP客戶(hù)模式的處理流程。
  3.2中斷處理
  在處理W5100的中斷時(shí),首先應訪(fǎng)問(wèn)W5100的中斷寄存器(IR),可用MCU通過(guò)訪(fǎng)問(wèn)IR獲得產(chǎn)生中斷的來(lái)源。任何中斷源都可以被中斷寄存器(IMR)的相應位所屏蔽,因此,若要使用某個(gè)中斷源,先要置位該中斷源在IMR中的相應位,這樣,當IR中對應位置位時(shí),才會(huì )產(chǎn)生中斷。此后當中斷產(chǎn)生時(shí),即進(jìn)入中斷處理程序。對于每個(gè)中斷事件,處理方式可由用戶(hù)自己定義。
  假如使用的是端口0中斷??稍赪5100的初始化程序中先將IMR中的IM_IR 0(端口0中斷屏蔽位)置位。這樣,當端口0中斷發(fā)生時(shí)(IM_IR0=I,S0_INT=1),系統將開(kāi)始讀端口0中斷寄存器(S0_IR),在W5100的端口寄存器中,主要設置有建立連接(CON)、終止連接(DIS
  CON)、數據發(fā)送完成(SEND_OK)、接收數據(RECV)和超時(shí)(TIMEOUT)等中斷事件。

  3.3 數據接收
  當端口產(chǎn)生接收中斷時(shí),可調用接收函數S_rx_process(SOCKET s)將端口接收到的數據緩存到Rx_buffer數組中,并返回接收的數據字節數。當讀完所有的數據后,可將接收存儲器讀指針寄存器(S0_RX_RD)的值加上讀取的數據長(cháng)度,然后再寫(xiě)入S0_RX_RD,最后向端口0的命令寄存器(S0_CR)寫(xiě)入RECV命令,以等待下次接收數據。但要注意在計算實(shí)際物理偏移量rx_offset時(shí),S_RX_SIZE必須保證和在初始化代碼中定義的接收緩存區的大小一致。
  3.4 數據發(fā)送
  通過(guò)Socket發(fā)送數據時(shí),首先把要發(fā)送的數據緩存在Tx_buffer中。此外,在發(fā)送數據時(shí),還需先檢查發(fā)送緩存區的剩余空間的大小,然后控制發(fā)送數據的字節數。端口發(fā)送緩存區的大小由發(fā)送存儲器空間寄存器(TMSR)確定。在數據發(fā)送處理過(guò)程中,剩余空間的大小將因寫(xiě)入數據而減少,發(fā)送完成后又自動(dòng)增加。把Tx_buffer的數據完全寫(xiě)入端口的發(fā)送數據緩存區后,可將端口傳輸寫(xiě)指針寄存器(Sn_TX_WR)中的值加上寫(xiě)入的數據長(cháng)度,再寫(xiě)入Sn_Tx_WR,以指示發(fā)送數據的長(cháng)度,最后在命令寄存器(Sn_CR)中寫(xiě)入SEND命令,以啟動(dòng)發(fā)送。
  4結束語(yǔ)
  本文對控制終端設計提出了一些新穎的設計思路,利用該思路可實(shí)現現場(chǎng)和網(wǎng)絡(luò )的混合控制。該系統創(chuàng )新處主要包括如下幾點(diǎn):
  (1)具有USB\UART等輸入輸出端口,可用于現場(chǎng)測控;
  (2)可通過(guò)以太網(wǎng)接口實(shí)現網(wǎng)絡(luò )傳輸、遠程網(wǎng)絡(luò )測控和信息資源共享等功能;
  (3)可通過(guò)大容量的存儲器來(lái)進(jìn)行大容量的數據采集,并將其存儲在片上處理;
  (4)具有LCD顯示單元,能夠實(shí)現數據和狀態(tài)信息的現場(chǎng)顯示,使用戶(hù)現場(chǎng)操作更加簡(jiǎn)單。 linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>