手機(jī)硬件開發(fā)基礎(chǔ)
2、I2C總線的讀寫時(shí)序 I2C總線上的每一次數(shù)據(jù)傳送都是在主控器之間進(jìn)行的,在沒(méi)有數(shù)據(jù)傳輸時(shí),SDA、SCL均被上拉為高電平,當(dāng)需要進(jìn)行數(shù)據(jù)傳輸時(shí),主控器首先產(chǎn)生一個(gè)起始信號(hào),(既SCL為高電平,SDA為被主器拉低的下降沿),然后在每個(gè)SCL時(shí)鐘脈沖出現(xiàn)時(shí)傳遞一個(gè)數(shù)據(jù)位,直到主控器產(chǎn)生一個(gè)停止信號(hào)(既SCL為高電平,SDA為被主控器釋放的上升沿)為止。I2C總線主控器首先發(fā)送被控器的7位地址及讀/寫位共1個(gè)字節(jié),在每個(gè)字節(jié)后,主控器都要等待被控器的應(yīng)答位,既主控器釋放SDA數(shù)據(jù)線,被控器在接著的第九位SCL脈沖期間拉低SDA數(shù)據(jù)線以表示應(yīng)答。再接著就是主控器發(fā)送數(shù)據(jù)被控器(寫被動(dòng)控器)或接收被控器發(fā)送來(lái)的數(shù)據(jù)(讀被控器),最后由主控器發(fā)出停止信號(hào)來(lái)通知被控器以結(jié)束整個(gè)數(shù)據(jù)傳送過(guò)程。
I2C總線協(xié)議規(guī)定傳送的數(shù)據(jù)長(zhǎng)度為8位,而每次傳送數(shù)據(jù)字節(jié)數(shù)以及字節(jié)地址中具有不同的規(guī)定。對(duì)于可編程器件,往往還需要根據(jù)已傳遞的命令情況確定下一步的數(shù)據(jù)傳遞操作。以24WC02為例,主控器對(duì)其進(jìn)行的操作模式包括: 字節(jié)寫、頁(yè)寫、立即讀、選擇讀、連續(xù)讀等多種情況, 在字節(jié)寫模式時(shí),主器件發(fā)送起始信號(hào)和從器件地址,然后發(fā)送寫入字節(jié)地址,在發(fā)送寫入數(shù)據(jù),最后發(fā)送停止信號(hào)從而完成一次寫操作;頁(yè)寫模式與字節(jié)寫模式的不同之處只是在字節(jié)寫一個(gè)數(shù)據(jù)后并不立即發(fā)送停止信號(hào),而是連續(xù)發(fā)送一頁(yè)數(shù)據(jù)(規(guī)定一頁(yè)為16個(gè)字節(jié))后來(lái)停止在立即讀模式時(shí),從器件在接收到主器件發(fā)送的器件地址后立即將上一次讀/寫操作的單元地址+1的內(nèi)容發(fā)送到數(shù)據(jù)線上,主器件收到8位數(shù)據(jù)后,不回送應(yīng)答位,而是直接回貴一個(gè)停止信號(hào)來(lái)完成一次立即讀操作;在選擇讀模式時(shí),主器件首先發(fā)送起始信號(hào)和從器件地址,最后讀取數(shù)據(jù);連續(xù)模式實(shí)際上是立即讀或選擇讀操作的擴(kuò)充,在執(zhí)行立即讀或選擇讀操作獲取一個(gè)字節(jié)數(shù)據(jù)后,主器件并回貴停止信號(hào)而是回貴一個(gè)應(yīng)答位,以表示主器件需要更多的數(shù)據(jù),然后由從器件有序地將后續(xù)字節(jié)數(shù)據(jù)發(fā)送到數(shù)據(jù)線上,知道收到主控器件給出的停止信號(hào)為止。
在單片機(jī)系統(tǒng)中,CPU不僅要實(shí)現(xiàn)對(duì)自身的控制,還擔(dān)負(fù)對(duì)單片機(jī)系統(tǒng)內(nèi)外其它功能部件的控制,完成規(guī)定的操作和運(yùn)算。CPU在實(shí)現(xiàn)這些控制功能時(shí),是通過(guò)逐步執(zhí)行指令序列的過(guò)程來(lái)完成的。 單片機(jī)系統(tǒng)對(duì)任何一條指令的執(zhí)行必須經(jīng)歷下列三個(gè)階段: 1取指令階段; 2分析指令階段 3執(zhí)行指令階段。 關(guān)于手機(jī)單片機(jī)系統(tǒng)的工作過(guò)程主要說(shuō)明下列幾點(diǎn): 1單片機(jī)系統(tǒng)執(zhí)行一條完整的指令必須經(jīng)過(guò)取指令、分析指令和執(zhí)行指令三個(gè)過(guò)程。CPU中的每條指令都存放在專門的存儲(chǔ)器(ROM)中。 2程序由指令序列組成,程序的執(zhí)行過(guò)程就是執(zhí)行指令序列的過(guò)程,也就是周而復(fù)始地進(jìn)行取指令、執(zhí)行指令過(guò)程。 3程序的執(zhí)行種類分為四種:一種從零地址開始執(zhí)行;二是從中間某一給定地址開始執(zhí)行;三是順序執(zhí)行;四是非順序執(zhí)行。 4程序的執(zhí)行中需要去控制單片機(jī)的外部電路,其控制方式有兩種:一是直接控制方式;二是間接控制方式。前者電路結(jié)構(gòu)簡(jiǎn)單,但不能用來(lái)直接控制數(shù)目比較多的執(zhí)行部件,因?yàn)檫@會(huì)占有單片機(jī)的許多輸出接口。間接控制方式與直接控制方式相反,它通過(guò)一個(gè)控制器,由單片機(jī)控制這一控制器。再由這一控制器去直接控制執(zhí)行部件,這樣可聲去微控制器的許多輸出接口,這種間接控制方式能夠控制數(shù)目很多的外部執(zhí)行部件。
5中斷是單片機(jī)中的一種重要功能,它能夠使單片機(jī)的控制功能更加完善。所謂中斷,就是在正常執(zhí)行程序的過(guò)程中,暫時(shí)停止執(zhí)行主程序,而轉(zhuǎn)去執(zhí)行另一個(gè)更加緊急的程序。 6中斷有五個(gè)階段:一是中斷請(qǐng)求;二是中斷排隊(duì);三是中斷響應(yīng);四是中斷處理;五是中斷返回。
手機(jī)中的單片機(jī)一般是16位微處理器(CPU),簡(jiǎn)單點(diǎn)說(shuō),我們可以把CPU直接看成是一塊單片機(jī),而這塊單片機(jī)只有控制運(yùn)算功能,而不具備存儲(chǔ)等功能是外置的。它與外圍某些器件的工作流程如: 按手機(jī)開機(jī)鍵,給維持電源部分供電,同時(shí)上電單片機(jī),單片機(jī)復(fù)位后,再給出控制信號(hào)給維持電源部分,這時(shí)即使松開開機(jī)鍵也無(wú)妨。
復(fù)位后,CPU開始運(yùn)行其內(nèi)部的程序存儲(chǔ)器,首先從地址0(一般地址0,也有些廠家CPU不是)開始執(zhí)行,然后順序執(zhí)行它的引導(dǎo)程序,同時(shí)從外部存儲(chǔ)器(字庫(kù)、碼片)內(nèi)讀取資料。如果此時(shí)讀取的資料不對(duì),則CPU會(huì)內(nèi)部復(fù)位(通過(guò)CPU內(nèi)部的“看門狗”或者硬件復(fù)位指令)引導(dǎo)程序,如果順利執(zhí)行完成后,CPU才從外部字庫(kù)里取程序執(zhí)行,如果取得程序異常,它也會(huì)導(dǎo)致“看門狗”復(fù)位,既程序又從地址0開始執(zhí)行。 CPU讀取字庫(kù)是通過(guò)并行數(shù)據(jù)線和地址線和地址線,再配合讀寫控制時(shí)鐘線W/R,有些讀者可能會(huì)問(wèn),字庫(kù)是怎么區(qū)分是讀程序,還是讀數(shù)據(jù)?單片機(jī)還有一跟外部程序存儲(chǔ)器片選信號(hào)線或CS、CE、,它和W/R配合作用,就能讓字庫(kù)區(qū)分讀是數(shù)據(jù),還是程序。 手機(jī)所有軟件工作的流程都是在CPU的作用下進(jìn)行的,具體的劃分包括下文所述的5個(gè)流程。這些流程都是以軟件數(shù)據(jù)的形式儲(chǔ)于手機(jī)的EEPROM和FLASHROM中.
2、手機(jī)作被叫 當(dāng)從PSTN發(fā)出呼叫時(shí),其過(guò)程與上述過(guò)程類似。基站在BCCH適應(yīng)內(nèi)的Tso期間,廣播一個(gè)PCH消息。鎖定于相同ARFCN上的手機(jī)檢測(cè)對(duì)它的尋呼,并回復(fù)一個(gè)RACH消息,以確認(rèn)接收到尋呼。當(dāng)網(wǎng)絡(luò)和服務(wù)器基站連接后,基站采用CCCH上的AGCH將手機(jī)分配到一個(gè)新的物理信道,以便連接SDCCH和SACCH。一旦用戶在SDCCH上建立了定時(shí)提前量并獲準(zhǔn)確認(rèn)后,基站就在SDCCH上面重新分配物理信道,同時(shí)也確立了TCH的分配。
三、 關(guān)機(jī)流程 關(guān)機(jī)時(shí),按下開關(guān)鍵,鍵盤檢測(cè)模塊向數(shù)字邏輯部分發(fā)出一個(gè)關(guān)機(jī)請(qǐng)求信號(hào),CPU既撤消開機(jī)維持信號(hào),執(zhí)行關(guān)機(jī)程序,供電模塊撤消供電,射頻和邏輯電路立即停止工作。如果在開機(jī)狀態(tài)下強(qiáng)制關(guān)機(jī)(取下電池)也有可能會(huì)造成內(nèi)部軟件故障。