單片機(jī)以太網(wǎng)控制芯片W7100A數(shù)據(jù)手冊(三)
昨天給大家介紹了有關(guān)中斷、I/O端口及定時器的部分,今天繼續(xù)講解W7100A如何通過異步收發(fā)以及看門狗定時器&TCP/IP內(nèi)核相關(guān)內(nèi)容。
6. 通過異步收發(fā)(UART)
引腳的功能描述如下:
表6.1 UART引腳定義
注意:
SM2 – 允許多處理器通信
SM1 – 設(shè)置波特率
SM0 – 設(shè)置波特率
REN – ‘1’ : 使能串行接收
‘0’ : 禁止串行接收
TB8 – 在模式2和模式3,發(fā)送數(shù)據(jù)的第9位。根據(jù)CPU的運(yùn)行情況啟用這一位(奇偶校驗,多機(jī)通信等)
RB8 – 在模式2和模式3,接收數(shù)據(jù)的第9位。在模式1,如果SM2=0,RB8是停止位,在模式0,該位沒有使用。
UART模式如下表所示:
6.1 中斷
與UART中斷有關(guān)的位如下。中斷可以由IE寄存器觸發(fā),中斷優(yōu)先級可以由IP寄存器配置。
圖6.6 UART配置寄存器
注意:
TI – 發(fā)送中斷標(biāo)志,完成一次發(fā)送后由硬件自動置”1”,必須由軟件清除
RI – 接收中斷標(biāo)志,接收一個串行數(shù)據(jù)后由硬件自動置”1”,必須由軟件清除
所有可以產(chǎn)生中斷的位都可以通過軟件設(shè)置或清除,與硬件產(chǎn)生的效果相同。也即是說,中斷可以由軟件產(chǎn)生或清除。
表6.4 UART中斷
6.2 模式0,同步模式
TXD輸出同步時鐘,波特率固定位1/12時鐘頻率(CLK)。傳輸?shù)?位數(shù)據(jù)低位在前,通過設(shè)置RI=0和REN=1,即可啟動接收。
6.3 模式1,8位UART,波特率可變,Timer1或Timer2作為時鐘源
RXD引腳作為串行通信的輸入端,TXD引腳作為串行通信的輸出端。10位傳輸?shù)臄?shù)據(jù)順序是:1個起始位(0)、8位數(shù)據(jù)位(低位在前)、一個停止位(1)。在接收過程中,通過起始位同步傳輸過程,下一步即可以通過SBUF讀取到8位數(shù)據(jù),停止位用于觸發(fā)特殊功能寄存器SCON(0x98)的RB08位,根據(jù)Timer1或Timer2的模式可以改變通信波特率。要使用Timer2作為時鐘源,需要設(shè)置T2CON(0xC8)寄存器的TCLK和RCLK位。
6.4 模式2,9位UART,固定波特率
模式2與模式1相同,但波特率固定為1/32或1/64時鐘頻率,傳輸?shù)臄?shù)據(jù)位11位:一個起始位(0),8位數(shù)據(jù)位(低位在前),一個可編程的第9位和一個停止位(1)。第9位可用于UART數(shù)據(jù)的其偶檢驗。在發(fā)送過程中,SCON寄存器的TB08位是作為數(shù)據(jù)的第9位輸出的。在接收過程中,接收的第9位將保存在sCON的RB08位。
6.6 波特率設(shè)置
表6.5 波特率設(shè)置
注意:
波特率計算公式
使用Timer1 – 波特率 = ( 2SMOD/ 32 ) * ( 時鐘頻率 / 12( 256 – TH1 ) )
使用Timer2 – 波特率 = 時鐘頻率 / ( 32 * ( 65536 – ( RLDH, RLDL ) ) )
7. 看門狗定時器
7.1 概述
看門狗定時器由系統(tǒng)時鐘經(jīng)過一系列的分頻器提供時鐘信號,如下圖所示。分頻器輸出是可選擇的,它決定了定時器超時的間隔。當(dāng)看門狗定時器產(chǎn)生超時的時候,相應(yīng)的中斷標(biāo)志將置位。如果允許的話,對系統(tǒng)復(fù)位。當(dāng)中斷允許控制位和中斷總開關(guān)都開啟時,中斷標(biāo)志將觸發(fā)中斷。復(fù)位和中斷是完全不同的兩個功能,根據(jù)應(yīng)用系統(tǒng)的要求,可分別得到響應(yīng)、或單獨得到響應(yīng)、或忽略之。
7.2 中斷
與看門狗中斷有關(guān)的位如下圖所示。中斷可以由IE(0xA8)和EIE(0xE8)寄存器打開或關(guān)閉。由EIP(0xF8)寄存器設(shè)置其優(yōu)先級。IE中的中斷總開關(guān)EA可打開(1)或關(guān)閉(0)所有中斷。
7.3 看門狗定時器復(fù)位
看門狗定時器復(fù)位的操作如下:一旦設(shè)定溢出的時間間隔,系統(tǒng)首先通過RWT重新啟動看門狗。然后,通過啟動看門狗定時器復(fù)位(WDCON.1)位,啟動復(fù)位模式。在定時器到達(dá)用戶設(shè)定的定時值之前,軟件可以置復(fù)位看門狗定時器(WDCON.0)位為1。如果在定時器時間溢出發(fā)生之前設(shè)置RWT,定時器將重新啟動;如果在RWT置位之前發(fā)生了定時器溢出,看門狗將對CPU復(fù)位。軟件對RWT設(shè)置以后,硬件將自動清除RWT。當(dāng)產(chǎn)生一次復(fù)位,WTRF(看門狗定時的復(fù)位標(biāo)志W(wǎng)DCON.2)將自動設(shè)置,以指示當(dāng)前復(fù)位的類型。必須由軟件手動清零該位。
評論