亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

USART-<b>send</b>

  • ASR M08-B資料

    ASR M08-B設(shè)置軟件 V3.2  arduino 2560+ASRM08-B測試程序  arduino UNO+ASRM08-B測試程序語音控制臺燈電路圖及C51源碼(不帶校驗碼) 繼電器模塊設(shè)置。   ASR M08-B是一款語音識別模塊。首先對模塊添加一些關(guān)鍵字,對著該模塊說出關(guān)鍵字,串口會返回三位的數(shù),如果是返回特定的三位數(shù)字,還會引起ASR M08-B的相關(guān)引腳電平的變化。【測試】①打開“ASR M08-B設(shè)置軟件 V3.2.exe”。②選擇“串口號”、“打開串口”、點選“十六進(jìn)制顯示”。③將USB轉(zhuǎn)串口模塊連接到語音識別模塊上。接線方法如下:語音模塊TXD --> USB模塊RXD語音模塊RXD --> USB模塊TXD語音模塊GND --> USB模塊GND語音模塊3V3 --> USB模塊3V3(此端為3.3V電源供電端。)④將模塊的開關(guān)撥到“A”端,最好再按一次上面的大按鈕(按一次即可,為了確保模塊工作在正確的模式)。⑤對著模塊說“開燈”、“關(guān)燈”模塊會返回“0B”、“0A”,表示正常(注意:0B對應(yīng)返回值010,0B對應(yīng)返回值010,返回是16進(jìn)制顯示的嘛,設(shè)置的時候是10進(jìn)制設(shè)置的)。

    標(biāo)簽: ASR M08-B

    上傳時間: 2022-07-06

    上傳用戶:aben

  • MCS-51系列單片機實用接口技術(shù)

    本書全面、系統(tǒng)地介紹了MCS-51系列單片機應(yīng)用系統(tǒng)的各種實用接口技術(shù)及其配置。   內(nèi)容包括:MCS-51系列單片機組成原理:應(yīng)用系統(tǒng)擴展、開發(fā)與調(diào)試;鍵盤輸入接口的設(shè)計及調(diào)試;打印機和顯示器接口及設(shè)計實例;模擬輸入通道接口技術(shù);A/D、D/A、接口技術(shù)及在控制系統(tǒng)中的應(yīng)用設(shè)計;V/F轉(zhuǎn)換器接口技術(shù)、串行通訊接口技術(shù)以及其它與應(yīng)用系統(tǒng)設(shè)計有關(guān)的實用技術(shù)等。   本書是為滿足廣大科技工作者從事單片機應(yīng)用系統(tǒng)軟件、硬件設(shè)計的需要而編寫的,具有內(nèi)容新穎、實用、全面的特色。所有的接口設(shè)計都包括詳細(xì)的設(shè)計步驟、硬件線路圖及故障分析,并附有測試程序清單。書中大部分接口軟、硬件設(shè)計實例都是作者多年來從事單片機應(yīng)用和開發(fā)工作的經(jīng)驗總結(jié),實用性和工程性較強,尤其是對應(yīng)用系統(tǒng)中必備的鍵盤、顯示器、打印機、A/D、D/A通訊接口設(shè)計、模擬信號處理及開發(fā)系統(tǒng)應(yīng)用舉例甚多,目的是讓將要開始和正在從事單片機應(yīng)用開發(fā)的科研人員根據(jù)自己的實際需要來選擇應(yīng)用,一書在手即可基本完成單片機應(yīng)用系統(tǒng)的開發(fā)工作。   本書主要面向從事單片機應(yīng)用開發(fā)工作的廣大工程技術(shù)人員,也可作為大專院校有關(guān)專業(yè)的教材或教學(xué)參考書。 第一章MCS-51系列單片機組成原理   1.1概述   1.1.1單片機主流產(chǎn)品系列   1.1.2單片機芯片技術(shù)的發(fā)展概況   1.1.3單片機的應(yīng)用領(lǐng)域   1.2MCS-51單片機硬件結(jié)構(gòu)   1.2.1MCS-51單片機硬件結(jié)構(gòu)的特點   1.2.2MCS-51單片機的引腳描述及片外總線結(jié)構(gòu)   1.2.3MCS-51片內(nèi)總體結(jié)構(gòu)   1.2.4MCS-51單片機中央處理器及其振蕩器、時鐘電路和CPU時序   1.2.5MCS-51單片機的復(fù)位狀態(tài)及幾種復(fù)位電路設(shè)計   1.2.6存儲器、特殊功能寄存器及位地址空間   1.2.7輸入/輸出(I/O)口   1.3MCS-51單片機指令系統(tǒng)分析   1.3.1指令系統(tǒng)的尋址方式   1.3.2指令系統(tǒng)的使用要點   1.3.3指令系統(tǒng)分類總結(jié)   1.4串行接口與定時/計數(shù)器   1.4.1串行接口簡介   1.4.2定時器/計數(shù)器的結(jié)構(gòu)   1.4.3定時器/計數(shù)器的四種工作模式   1.4.4定時器/計數(shù)器對輸入信號的要求   1.4.5定時器/計數(shù)器的編程和應(yīng)用   1.5中斷系統(tǒng)   1.5.1中斷請求源   1.5.2中斷控制   1.5.3中斷的響應(yīng)過程   1.5.4外部中斷的響應(yīng)時間   1.5.5外部中斷方式的選擇   第二章MCS-51單片機系統(tǒng)擴展   2.1概述   2.2程序存貯器的擴展   2.2.1外部程序存貯器的擴展原理及時序   2.2.2地址鎖存器   2.2.3EPROM擴展電路   2.2.4EEPROM擴展電路   2.3外部數(shù)據(jù)存貯器的擴展   2.3.1外部數(shù)據(jù)存貯器的擴展方法及時序   2.3.2靜態(tài)RAM擴展   2.3.3動態(tài)RAM擴展   2.4外部I/O口的擴展   2.4.1I/O口擴展概述   2.4.2I/O口地址譯碼技術(shù)   2.4.38255A可編程并行I/O擴展接口   2.4.48155/8156可編程并行I/O擴展接口   2.4.58243并行I/O擴展接口   2.4.6用TTL芯片擴展I/O接口   2.4.7用串行口擴展I/O接口   2.4.8中斷系統(tǒng)擴展   第三章MCS-51單片機應(yīng)用系統(tǒng)的開發(fā)   3.1單片機應(yīng)用系統(tǒng)的設(shè)計   3.1.1設(shè)計前的準(zhǔn)備工作   3.1.2應(yīng)用系統(tǒng)的硬件設(shè)計   3.1.3應(yīng)用系統(tǒng)的軟件設(shè)計   3.1.4應(yīng)用系統(tǒng)的抗干擾設(shè)計   3.2單片機應(yīng)用系統(tǒng)的開發(fā)   3.2.1仿真系統(tǒng)的功能   3.2.2開發(fā)手段的選擇   3.2.3應(yīng)用系統(tǒng)的開發(fā)過程   3.3SICE—IV型單片機仿真器   3.3.1SICE-IV仿真器系統(tǒng)結(jié)構(gòu)   3.3.2SICE-IV的仿真特性和軟件功能   3.3.3SICE-IV與主機和終端的連接使用方法   3.4KHK-ICE-51單片機仿真開發(fā)系統(tǒng)   3.4.1KHK—ICE-51仿真器系統(tǒng)結(jié)構(gòu)   3.4.2仿真器系統(tǒng)功能特點   3.4.3KHK-ICE-51仿真系統(tǒng)的安裝及其使用   3.5單片機應(yīng)用系統(tǒng)的調(diào)試   3.5.1應(yīng)用系統(tǒng)聯(lián)機前的靜態(tài)調(diào)試   3.5.2外部數(shù)據(jù)存儲器RAM的測試   3.5.3程序存儲器的調(diào)試   3.5.4輸出功能模塊調(diào)試   3.5.5可編程I/O接口芯片的調(diào)試   3.5.6外部中斷和定時器中斷的調(diào)試   3.6用戶程序的編輯、匯編、調(diào)試、固化及運行   3.6.1源程序的編輯   3.6.2源程序的匯編   3.6.3用戶程序的調(diào)試   3.6.4用戶程序的固化   3.6.5用戶程序的運行   第四章鍵盤及其接口技術(shù)   4.1鍵盤輸入應(yīng)解決的問題   4.1.1鍵盤輸入的特點   4.1.2按鍵的確認(rèn)   4.1.3消除按鍵抖動的措施   4.2獨立式按鍵接口設(shè)計   4.3矩陣式鍵盤接口設(shè)計   4.3.1矩陣鍵盤工作原理   4.3.2按鍵的識別方法   4.3.3鍵盤的編碼   4.3.4鍵盤工作方式   4.3.5矩陣鍵盤接口實例及編程要點   4.3.6雙功能及多功能鍵設(shè)計   4.3.7鍵盤處理中的特殊問題一重鍵和連擊   4.48279鍵盤、顯示器接口芯片及應(yīng)用   4.4.18279的組成和基本工作原理   4.4.28279管腳、引線及功能說明   4.4.38279編程   4.4.48279鍵盤接口實例   4.5功能開關(guān)及撥碼盤接口設(shè)計   第五章顯示器接口設(shè)計   5.1LED顯示器   5.1.1LED段顯示器結(jié)構(gòu)與原理   5.1.2LED顯示器及顯示方式   5.1.3LED顯示器接口實例   5.1.4LED顯示器驅(qū)動技術(shù)   5.2單片機應(yīng)用系統(tǒng)中典型鍵盤、顯示接口技術(shù)   5.2.1用8255和串行口擴展的鍵盤、顯示器電路   5.2.2由鎖存器組成的鍵盤、顯示器接口電路   5.2.3由8155構(gòu)成的鍵盤、顯示器接口電路   5.2.4用8279組成的顯示器實例   5.3液晶顯示LCD   5.3.1LCD的基本結(jié)構(gòu)及工作原理   5.3.2LCD的驅(qū)動方式   5.3.34位LCD靜態(tài)驅(qū)動芯片ICM7211系列簡介   5.3.4點陣式液晶顯示控制器HD61830介紹   5.3.5點陣式液晶顯示模塊介紹   5.4熒光管顯示   5.5LED大屏幕顯示器   第六章打印機接口設(shè)計   6.1打印機簡介   6.1.1打印機的基本知識   6.1.2打印機的電路構(gòu)成   6.1.3打印機的接口信號   6.1.4打印機的打印命令   6.2TPμP-40A微打與單片機接口設(shè)計   6.2.1TPμP系列微型打印機簡介   6.2.2TPμP-40A打印功能及接口信號   6.2.3TPμP-40A工作方式及打印命令   6.2.48031與TPμP-40A的接口   6.2.5打印編程實例   6.3XLF微型打印機與單片機接口設(shè)計   6.3.1XLF微打簡介   6.3.2XLF微打接口信號及與8031接口設(shè)計   6.3.3XLF微打控制命令   6.3.4打印機編程   6.4標(biāo)準(zhǔn)寬行打印機與8031接口設(shè)計   6.4.1TH3070接口引腳信號及時序   6.4.2與8031的簡單接口   6.4.3通過打印機適配器完成8031與打印機的接口   6.4.4對打印機的編程   第七章模擬輸入通道接口技術(shù)   7.1傳感器   7.1.1傳感器的分類   7.1.2溫度傳感器   7.1.3光電傳感器   7.1.4濕度傳感器   7.1.5其他傳感器   7.2模擬信號放大技術(shù)   7.2.1基本放大器電路   7.2.2集成運算放大器   7.2.3常用運算放大器及應(yīng)用舉例   7.2.4測量放大器   7.2.5程控增益放大器   7.2.6隔離放大器   7.3多通道模擬信號輸入技術(shù)   7.3.1多路開關(guān)   7.3.2常用多路開關(guān)   7.3.3模擬多路開關(guān)   7.3.4常用模擬多路開關(guān)   7.3.5多路模擬開關(guān)應(yīng)用舉例   7.3.6多路開關(guān)的選用   7.4采樣/保持電路設(shè)計   7.4.1采樣/保持原理   7.4.2集成采樣/保持器   7.4.3常用集成采樣/保持器   7.4.4采樣保持器的應(yīng)用舉例   7.5有源濾波器的設(shè)計   7.5.1濾波器分類   7.5.2有源濾波器的設(shè)計   7.5.3常用有源濾波器設(shè)計舉例   7.5.4集成有源濾波器   第八章D/A轉(zhuǎn)換器與MCS-51單片機的接口設(shè)計與實踐   8.1D/A轉(zhuǎn)換器的基本原理及主要技術(shù)指標(biāo)   8.1.1D/A轉(zhuǎn)換器的基本原理與分類   8.1.2D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)   8.2D/A轉(zhuǎn)換器件選擇指南   8.2.1集成D/A轉(zhuǎn)換芯片介紹   8.2.2D/A轉(zhuǎn)換器的選擇要點及選擇指南表   8.2.3D/A轉(zhuǎn)換器接口設(shè)計的幾點實用技術(shù)   8.38位D/A轉(zhuǎn)換器DAC080/0831/0832與MCS-51單片機的接口設(shè)計   8.3.1DAC0830/0831/0832的應(yīng)用特性與引腳功能   8.3.2DAC0830/0831/0832與8031單片機的接口設(shè)計   8.3.3DAC0830/0831/0832的調(diào)試說明   8.3.4DAC0830/0831/0832應(yīng)用舉例   8.48位D/A轉(zhuǎn)換器AD558與MCS-51單片機的接口設(shè)計   8.4.1AD558的應(yīng)用特性與引腳功能   8.4.2AD558與8031單片機的接口及調(diào)試說明   8.4.38位D/A轉(zhuǎn)換器DAC0800系列與8031單片機的接口   8.510位D/A轉(zhuǎn)換器AD7522與MCS-51的硬件接口設(shè)計   8.5.1AD7522的應(yīng)用特性及引腳功能   8.5.2AD7522與8031單片機的接口設(shè)計   8.610位D/A轉(zhuǎn)換器AD7520/7530/7533與MCS一51單片機的接口設(shè)計   8.6.1AD7520/7530/7533的應(yīng)用特性與引腳功能   8.6.2AD7520系列與8031單片機的接口   8.6.3DAC1020/DAC1220/AD7521系列D/A轉(zhuǎn)換器接口設(shè)計   8.712位D/A轉(zhuǎn)換器DAC1208/1209/1210與MCS-51單片機的接口設(shè)計   8.7.1DAC1208/1209/1210的內(nèi)部結(jié)構(gòu)與引腳功能   8.7.2DAC1208/1209/1210與8031單片機的接口設(shè)計   8.7.312位D/A轉(zhuǎn)換器DAC1230/1231/1232的應(yīng)用設(shè)計說明   8.7.412位D/A轉(zhuǎn)換器AD7542與8031單片機的接口設(shè)計   8.812位串行DAC-AD7543與MCS-51單片機的接口設(shè)計   8.8.1AD7543的應(yīng)用特性與引腳功能   8.8.2AD7543與8031單片機的接口設(shè)計   8.914位D/A轉(zhuǎn)換器AD75335與MCS-51單片機的接口設(shè)計   8.9.1AD8635的內(nèi)部結(jié)構(gòu)與引腳功能   8.9.2AD7535與8031單片機的接口設(shè)計   8.1016位D/A轉(zhuǎn)換器AD1147/1148與MCS-51單片機的接口設(shè)計   8.10.1AD1147/AD1148的內(nèi)部結(jié)構(gòu)及引腳功能   8.10.2AD1147/AD1148與8031單片機的接口設(shè)計   8.10.3AD1147/AD1148接口電路的應(yīng)用調(diào)試說明   8.10.416位D/A轉(zhuǎn)換器AD1145與8031單片機的接口設(shè)計   第九章A/D轉(zhuǎn)換器與MCS-51單片機的接口設(shè)計與實踐   9.1A/D轉(zhuǎn)換器的基本原理及主要技術(shù)指標(biāo)   9.1.1A/D轉(zhuǎn)換器的基本原理與分類   9.1.2A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)   9.2面對課題如何選擇A/D轉(zhuǎn)換器件   9.2.1常用A/D轉(zhuǎn)換器簡介   9.2.2A/D轉(zhuǎn)換器的選擇要點及應(yīng)用設(shè)計的幾點實用技術(shù)   9.38位D/A轉(zhuǎn)換器ADC0801/0802/0803/0804/0805與MCS-51單片機的接口設(shè)計   9.3.1ADC0801~ADC0805芯片的引腳功能及應(yīng)用特性   9.3.2ADC0801~ADC0805與8031單片機的接口設(shè)計   9.48路8位A/D轉(zhuǎn)換器ADC0808/0809與MCS一51單片機的接口設(shè)計   9.4.1ADC0808/0809的內(nèi)部結(jié)構(gòu)及引腳功能   9.4.2ADC0808/0809與8031單片機的接口設(shè)計   9.4.3接口電路設(shè)計中的幾點注意事項   9.4.416路8位A/D轉(zhuǎn)換器ADC0816/0817與MCS-51單片機的接口設(shè)計   9.510位A/D轉(zhuǎn)換器AD571與MCS-51單片機的接口設(shè)計   9.5.1AD571芯片的引腳功能及應(yīng)用特性   9.5.2AD571與8031單片機的接口   9.5.38位A/D轉(zhuǎn)換器AD570與8031單片機的硬件接口   9.612位A/D轉(zhuǎn)換器ADC1210/1211與MCS-51單片機的接口設(shè)計   9.6.1ADC1210/1211的引腳功能與應(yīng)用特性   9.6.2ADC1210/1211與8031單片機的硬件接口   9.6.3硬件接口電路的設(shè)計要點及幾點說明   9.712位A/D轉(zhuǎn)換器AD574A/1374/1674A與MCS-51單片機的接口設(shè)計   9.7.1AD574A的內(nèi)部結(jié)構(gòu)與引腳功能   9.7.2AD574A的應(yīng)用特性及校準(zhǔn)   9.7.3AD574A與8031單片機的硬件接口設(shè)計   9.7.4AD574A的應(yīng)用調(diào)試說明   9.7.5AD674A/AD1674與8031單片機的接口設(shè)計   9.8高速12位A/D轉(zhuǎn)換器AD578/AD678/AD1678與MCS—51單片機的接口設(shè)計   9.8.1AD578的應(yīng)用特性與引腳功能   9.8.2AD578高速A/D轉(zhuǎn)換器與8031單片機的接口設(shè)計   9.8.3AD578高速A/D轉(zhuǎn)換器的應(yīng)用調(diào)試說明   9.8.4AD678/AD1678采樣A/D轉(zhuǎn)換器與8031單片機的接口設(shè)計   9.914位A/D轉(zhuǎn)換器AD679/1679與MCS-51單片機的接口設(shè)計   9.9.1AD679/AD1679的應(yīng)用特性及引腳功能   9.9.2AD679/1679與8031單片機的接口設(shè)計   9.9.3AD679/1679的調(diào)試說明   9.1016位ADC-ADC1143與MCS-51單片機的接口設(shè)計   9.10.1ADC1143的應(yīng)用特性及引腳功能   9.10.2ADC1143與8031單片機的接口設(shè)計   9.113位半積分A/D轉(zhuǎn)換器5G14433與MCS-51單片機的接口設(shè)計   9.11.15G14433的內(nèi)部結(jié)構(gòu)及引腳功能   9.11.25G14433的外部電路連接與元件參數(shù)選擇   9.11.35G14433與8031單片機的接口設(shè)計   9.11.45G14433的應(yīng)用舉例   9.124位半積分A/D轉(zhuǎn)換器ICL7135與MCS—51單片機的接口設(shè)計   9.12.1ICL7135的內(nèi)部結(jié)構(gòu)及芯片引腳功能   9.12.2ICL7135的外部電路連接與元件參數(shù)選擇   9.12.3ICL7135與8031單片機的硬件接口設(shè)計   9.124ICL7135的應(yīng)用舉例   9.1312位雙積分A/D轉(zhuǎn)換器ICL7109與MCS—51單片機的接口設(shè)計   9.13.1ICL7109的內(nèi)部結(jié)構(gòu)與芯片引腳功能   9.13.2ICL7109的外部電路連接與元件參數(shù)選擇   9.13.3ICL7109與8031單片機的硬件接口設(shè)計   9.1416位積分型ADC一ICL7104與MCS-51單片機的接口設(shè)計   9.14.1ICL7104的主要應(yīng)用特性及引腳功能   9.14.2ICL7104與8031單片機的接口設(shè)計   9.14.3其它積分型A/D轉(zhuǎn)換器簡介   第十章V/F轉(zhuǎn)換器接口技術(shù)   10.1V/F轉(zhuǎn)換的特點及應(yīng)用環(huán)境   10.2V/F轉(zhuǎn)換原理及用V/F轉(zhuǎn)換器實現(xiàn)A/D轉(zhuǎn)換的方法   10.2.1V/F轉(zhuǎn)換原理   10.2.2用V/F轉(zhuǎn)換器實現(xiàn)A/D轉(zhuǎn)換的方法   10.3常用V/F轉(zhuǎn)換器簡介   10.3.1VFC32   10.3.2LMX31系列V/F轉(zhuǎn)換器   10.3.3AD650   10.3.4AD651   10.4V/F轉(zhuǎn)換應(yīng)用系統(tǒng)中的通道結(jié)構(gòu)   10.5LM331應(yīng)用實例   10.5.1線路原理   10.5.2軟件設(shè)計   10.6AD650應(yīng)用實例   10.6.1AD650外圍電路設(shè)計   10.6.2定時/計數(shù)器(8253—5簡介)   10.6.3線路原理   10.6.4軟件設(shè)計   第十一章串行通訊接口技術(shù)   11.1串行通訊基礎(chǔ)   11.1.1異步通訊和同步通訊   11.1.2波特率和接收/發(fā)送時鐘   11.1.3單工、半雙工、全雙工通訊方式   11.14信號的調(diào)制與解調(diào)   11.1.5通訊數(shù)據(jù)的差錯檢測和校正   11.1.6串行通訊接口電路UART、USRT和USART   11.2串行通訊總線標(biāo)準(zhǔn)及其接口   11.2.1串行通訊接口   11.2.2RS-232C接口   11.2.3RS-449、RS-422、RS-423及RS485   11.2.420mA電流環(huán)路串行接口   11.3MCS-51單片機串行接口   11.3.1串行口的結(jié)構(gòu)   11.3.2串行接口的工作方式   11.3.3串行通訊中波特率設(shè)置   11.4MCS-51單片機串行接口通訊技術(shù)   11.4.1單片機雙機通訊技術(shù)   11.4.2單片機多機通訊技術(shù)   11.5IBMPC系列機與單片機的通訊技術(shù)   11.5.1異步通訊適配器   11.5.2IBM-PC機與8031雙機通訊技術(shù)   11.5.3IBM—PC機與8031多機通訊技術(shù)   11.6MCS-51單片機串行接口的擴展   11.6.1Intel8251A可編程通訊接口   11.6.2擴展多路串行口的硬件設(shè)計   11.6.3通訊軟件設(shè)計   第十二章應(yīng)用系統(tǒng)設(shè)計中的實用技術(shù)   12.1MCS-51單片機低功耗系統(tǒng)設(shè)計   12.1.1CHMOS型單片機80C31/80C51/87C51的組成與使用要點   12.1.2CHMOS型單片機的空閑、掉電工作方式   12.1.3CHMOS型單片機的I/O接口及應(yīng)用系統(tǒng)實例   12.1.4HMOS型單片機的節(jié)電運行方式   12.2邏輯電平接口技術(shù)   12.2.1集電極開路門輸出接口   12.2.2TTL、HTL、ECL、CMOS電平轉(zhuǎn)換接口   12.3電壓/電流轉(zhuǎn)換   12.3.1電壓/0~10mA轉(zhuǎn)換   12.3.2電壓1~5V/4~20mA轉(zhuǎn)換   12.3.30~10mA/0~5V轉(zhuǎn)換   12.344~20mA/0~5V轉(zhuǎn)換   12.3.5集成V/I轉(zhuǎn)換電路   12.4開關(guān)量輸出接口技術(shù)   12.4.1輸出接口隔離技術(shù)   12.4.2低壓開關(guān)量信號輸出技術(shù)   12.4.3繼電器輸出接口技術(shù)   12.4.4可控硅(晶閘管)輸出接口技術(shù)   12.4.5固態(tài)繼電器輸出接口   12.4.6集成功率電子開關(guān)輸出接口   12.5集成穩(wěn)壓電路   12.5.1電源隔離技術(shù)   12.5.2三端集成穩(wěn)壓器   12.5.3高精度電壓基準(zhǔn)   12.6量程自動轉(zhuǎn)換技術(shù)   12.6.1自動轉(zhuǎn)換量程的硬件電路   12.6.2自動轉(zhuǎn)換量程的軟件設(shè)計   附錄AMCS-51單片機指令速查表   附錄B常用EPROM固化電壓參考表   參考文獻(xiàn)

    標(biāo)簽: MCS 51 單片機實用 接口技術(shù)

    上傳時間: 2013-10-15

    上傳用戶:himbly

  • at91rm9200啟動過程教程

    at91rm9200啟動過程教程 系統(tǒng)上電,檢測BMS,選擇系統(tǒng)的啟動方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準(zhǔn)確的說應(yīng)該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過程結(jié)束,接下來的就是LOADER的過程,或者也可以認(rèn)為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設(shè)備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進(jìn)行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設(shè)備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運行XMODEM協(xié)議。對USB DEVICE進(jìn)行初始化以及運行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務(wù)也不錯,不但提供了片內(nèi)啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動,這時rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時我們打開超級終端會看到ccccc...。這說明系統(tǒng)已經(jīng)啟動,同時xmodem協(xié)議已經(jīng)啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協(xié)議,為下載和啟動uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動等一些命令。 如果系統(tǒng)上電時bms為低電平,則系統(tǒng)從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當(dāng)前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。

    標(biāo)簽: 9200 at 91 rm

    上傳時間: 2013-10-27

    上傳用戶:wsf950131

  • MSP430系列超低功耗16位單片機原理與應(yīng)用

    MSP430系列超低功耗16位單片機原理與應(yīng)用TI公司的MSP430系列微控制器是一個近期推出的單片機品種。它在超低功耗和功能集成上都有一定的特色,尤其適合應(yīng)用在自動信號采集系統(tǒng)、液晶顯示智能化儀器、電池供電便攜式裝置、超長時間連續(xù)工作設(shè)備等領(lǐng)域。《MSP430系列超低功耗16位單片機原理與應(yīng)用》對這一系列產(chǎn)品的原理、結(jié)構(gòu)及內(nèi)部各功能模塊作了詳細(xì)的說明,并以方便工程師及程序員使用的方式提供軟件和硬件資料。由于MSP430系列的各個不同型號基本上是這些功能模塊的不同組合,因此,掌握《MSP430系列超低功耗16位單片機原理與應(yīng)用》的內(nèi)容對于MSP430系列的原理理解和應(yīng)用開發(fā)都有較大的幫助。《MSP430系列超低功耗16位單片機原理與應(yīng)用》的內(nèi)容主要根據(jù)TI公司的《MSP430 Family Architecture Guide and Module Library》一書及其他相關(guān)技術(shù)資料編寫。  《MSP430系列超低功耗16位單片機原理與應(yīng)用》供高等院校自動化、計算機、電子等專業(yè)的教學(xué)參考及工程技術(shù)人員的實用參考,亦可做為應(yīng)用技術(shù)的培訓(xùn)教材。MSP430系列超低功耗16位單片機原理與應(yīng)用 目錄  第1章 MSP430系列1.1 特性與功能1.2 系統(tǒng)關(guān)鍵特性1.3 MSP430系列的各種型號??第2章 結(jié)構(gòu)概述2.1 CPU2.2 代碼存儲器?2.3 數(shù)據(jù)存儲器2.4 運行控制?2.5 外圍模塊2.6 振蕩器、倍頻器和時鐘發(fā)生器??第3章 系統(tǒng)復(fù)位、中斷和工作模式?3.1 系統(tǒng)復(fù)位和初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 中斷處理3.3.1 SFR中的中斷控制位3.3.2 外部中斷3.4 工作模式3.5 低功耗模式3.5.1 低功耗模式0和模式13.5.2 低功耗模式2和模式33.5.3 低功耗模式43.6 低功耗應(yīng)用要點??第4章 存儲器組織4.1 存儲器中的數(shù)據(jù)4.2 片內(nèi)ROM組織4.2.1 ROM表的處理4.2.2 計算分支跳轉(zhuǎn)和子程序調(diào)用4.3 RAM與外圍模塊組織4.3.1 RAM4.3.2 外圍模塊--地址定位4.3.3 外圍模塊--SFR??第5章 16位CPU?5.1 CPU寄存器5.1.1 程序計數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG2?5.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時鐘周期與長度5.3 指令集概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡短格式5.3.5 其他指令5.4 指令分布??第6章 硬件乘法器?6.1 硬件乘法器的操作6.2 硬件乘法器的寄存器6.3 硬件乘法器的SFR位6.4 硬件乘法器的軟件限制6.4.1 硬件乘法器的軟件限制--尋址模式6.4.2 硬件乘法器的軟件限制--中斷程序??第7章 振蕩器與系統(tǒng)時鐘發(fā)生器?7.1 晶體振蕩器7.2 處理機時鐘發(fā)生器7.3 系統(tǒng)時鐘工作模式7.4 系統(tǒng)時鐘控制寄存器7.4.1 模塊寄存器7.4.2 與系統(tǒng)時鐘發(fā)生器相關(guān)的SFR位7.5 DCO典型特性??第8章 數(shù)字I/O配置?8.1 通用端口P08.1.1 P0的控制寄存器8.1.2 P0的原理圖8.1.3 P0的中斷控制功能8.2 通用端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理圖8.2.3 P1、P2的中斷控制功能8.3 通用端口P3、P48.3.1 P3、P4的控制寄存器8.3.2 P3、P4的原理圖8.4 LCD端口8.5 LCD端口--定時器/端口比較器??第9章 通用定時器/端口模塊?9.1 定時器/端口模塊操作9.1.1 定時器/端口計數(shù)器TPCNT1--8位操作9.1.2 定時器/端口計數(shù)器TPCNT2--8位操作9.1.3 定時器/端口計數(shù)器--16位操作9.2 定時器/端口寄存器9.3 定時器/端口SFR位9.4 定時器/端口在A/D中的應(yīng)用9.4.1 R/D轉(zhuǎn)換原理9.4.2 分辨率高于8位的轉(zhuǎn)換??第10章 定時器?10.1 Basic Timer110.1.1 Basic Timer1寄存器10.1.2 SFR位10.1.3 Basic Timer1的操作10.1.4 Basic Timer1的操作--LCD時鐘信號fLCD?10.2 8位間隔定時器/計數(shù)器10.2.1 8位定時器/計數(shù)器的操作10.2.2 8位定時器/計數(shù)器的寄存器10.2.3 與8位定時器/計數(shù)器有關(guān)的SFR位10.2.4 8位定時器/計數(shù)器在UART中的應(yīng)用10.3 看門狗定時器11.1.3 比較模式11.1.4 輸出單元11.2 TimerA的寄存器11.2.1 TimerA控制寄存器TACTL11.2.2 捕獲/比較控制寄存器CCTL11.2.3 TimerA中斷向量寄存器11.3 TimerA的應(yīng)用11.3.1 TimerA增計數(shù)模式應(yīng)用11.3.2 TimerA連續(xù)模式應(yīng)用11.3.3 TimerA增/減計數(shù)模式應(yīng)用11.3.4 TimerA軟件捕獲應(yīng)用11.3.5 TimerA處理異步串行通信協(xié)議11.4 TimerA的特殊情況11.4.1 CCR0用做周期寄存器11.4.2 定時器寄存器的啟/停11.4.3 輸出單元Unit0??第12章 USART外圍接口--UART模式?12.1 異步操作12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多處理機模式12.1.5 地址位格式12.2 中斷與控制功能12.2.1 USART接收允許12.2.2 USART發(fā)送允許12.2.3 USART接收中斷操作12.2.4 USART發(fā)送中斷操作12.3 控制與狀態(tài)寄存器12.3.1 USART控制寄存器UCTL12.3.2 發(fā)送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調(diào)制控制寄存器12.3.5 USART接收數(shù)據(jù)緩存URXBUF12.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF12.4 UART模式--低功耗模式應(yīng)用特性12.4.1 由UART幀啟動接收操作12.4.2 時鐘頻率的充分利用與UART模式的波特率12.4.3 節(jié)約MSP430資源的多處理機模式12.5 波特率的計算??第13章 USART外圍接口--SPI模式?13.1 USART的同步操作13.1.1 SPI模式中的主模式--MM=1、SYNC=113.1.2 SPI模式中的從模式--MM=0、SYNC=113.2 中斷與控制功能13.2.1 USART接收允許13.2.2 USART發(fā)送允許13.2.3 USART接收中斷操作13.2.4 USART發(fā)送中斷操作13.3 控制與狀態(tài)寄存器13.3.1 USART控制寄存器13.3.2 發(fā)送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調(diào)制控制寄存器13.3.5 USART接收數(shù)據(jù)緩存URXBUF13.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF??第14章 液晶顯示驅(qū)動?14.1 LCD驅(qū)動基本原理14.2 LCD控制器/驅(qū)動器14.2.1 LCD控制器/驅(qū)動器功能14.2.2 LCD控制與模式寄存器14.2.3 LCD顯示內(nèi)存14.2.4 LCD操作軟件例程14.3 LCD端口功能14.4 LCD與端口模式混合應(yīng)用實例??第15章 A/D轉(zhuǎn)換器?15.1 概述15.2 A/D轉(zhuǎn)換操作15.2.1 A/D轉(zhuǎn)換15.2.2 A/D中斷15.2.3 A/D量程15.2.4 A/D電流源15.2.5 A/D輸入端與多路切換15.2.6 A/D接地與降噪15.2.7 A/D輸入與輸出引腳15.3 A/D控制寄存器??第16章 其他模塊16.1 晶體振蕩器16.2 上電電路16.3 晶振緩沖輸出??附錄A 外圍模塊地址分配?附錄B 指令集描述?B1 指令匯總B2 指令格式B3 不增加ROM開銷的指令模擬B4 指令說明B5 用幾條指令模擬的宏指令??附錄C EPROM編程?C1 EPROM操作C2 快速編程算法C3 通過串行數(shù)據(jù)鏈路應(yīng)用\"JTAG\"特性的EPROM模塊編程C4 通過微控制器軟件實現(xiàn)對EPROM模塊編程??附錄D MSP430系列單片機參數(shù)表?附錄E MSP430系列單片機產(chǎn)品編碼?附錄F MSP430系列單片機封裝形式?

    標(biāo)簽: MSP 430 超低功耗 位單片機

    上傳時間: 2014-05-07

    上傳用戶:lwq11

  • MSP430系列flash型超低功耗16位單片機

    MSP430系列flash型超低功耗16位單片機MSP430系列單片機在超低功耗和功能集成等方面有明顯的特點。該系列單片機自問世以來,頗受用戶關(guān)注。在2000年該系列單片機又出現(xiàn)了幾個FLASH型的成員,它們除了仍然具備適合應(yīng)用在自動信號采集系統(tǒng)、電池供電便攜式裝置、超長時間連續(xù)工作的設(shè)備等領(lǐng)域的特點外,更具有開發(fā)方便、可以現(xiàn)場編程等優(yōu)點。這些技術(shù)特點正是應(yīng)用工程師特別感興趣的。《MSP430系列FLASH型超低功耗16位單片機》對該系列單片機的FLASH型成員的原理、結(jié)構(gòu)、內(nèi)部各功能模塊及開發(fā)方法與工具作詳細(xì)介紹。MSP430系列FLASH型超低功耗16位單片機 目錄  第1章 引 論1.1 MSP430系列單片機1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 結(jié)構(gòu)概述2.1 引 言2.2 CPU2.3 程序存儲器2.4 數(shù)據(jù)存儲器2.5 運行控制2.6 外圍模塊2.7 振蕩器與時鐘發(fā)生器第3章 系統(tǒng)復(fù)位、中斷及工作模式3.1 系統(tǒng)復(fù)位和初始化3.1.1 引 言3.1.2 系統(tǒng)復(fù)位后的設(shè)備初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 MSP430 中斷優(yōu)先級3.3.1 中斷操作--復(fù)位/NMI3.3.2 中斷操作--振蕩器失效控制3.4 中斷處理 3.4.1 SFR中的中斷控制位3.4.2 中斷向量地址3.4.3 外部中斷3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗應(yīng)用的要點23第4章 存儲空間4.1 引 言4.2 存儲器中的數(shù)據(jù)4.3 片內(nèi)ROM組織4.3.1 ROM 表的處理4.3.2 計算分支跳轉(zhuǎn)和子程序調(diào)用4.4 RAM 和外圍模塊組織4.4.1 RAM4.4.2 外圍模塊--地址定位4.4.3 外圍模塊--SFR4.5 FLASH存儲器4.5.1 FLASH存儲器的組織4.5.2 FALSH存儲器的數(shù)據(jù)結(jié)構(gòu)4.5.3 FLASH存儲器的控制寄存器4.5.4 FLASH存儲器的安全鍵值與中斷4.5.5 經(jīng)JTAG接口訪問FLASH存儲器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序計數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG25.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時鐘周期與長度5.3 指令組概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 無符號數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符號數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 無符號數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符號數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的軟件限制6.4.1 尋址模式6.4.2 中斷程序6.4.3 MACS第7章 基礎(chǔ)時鐘模塊7.1 基礎(chǔ)時鐘模塊7.2 LFXT1與XT27.2.1 LFXT1振蕩器7.2.2 XT2振蕩器7.2.3 振蕩器失效檢測7.2.4 XT振蕩器失效時的DCO7.3 DCO振蕩器7.3.1 DCO振蕩器的特性7.3.2 DCO調(diào)整器7.4 時鐘與運行模式7.4.1 由PUC啟動7.4.2 基礎(chǔ)時鐘調(diào)整7.4.3 用于低功耗的基礎(chǔ)時鐘特性7.4.4 選擇晶振產(chǎn)生MCLK7.4.5 時鐘信號的同步7.5 基礎(chǔ)時鐘模塊控制寄存器7.5.1 DCO時鐘頻率控制7.5.2 振蕩器與時鐘控制寄存器7.5.3 SFR控制位第8章 輸入輸出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中斷控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口邏輯第9章 看門狗定時器WDT9.1 看門狗定時器9.2 WDT寄存器9.3 WDT中斷控制功能9.4 WDT操作第10章 16位定時器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定時器模式控制10.2.2 時鐘源選擇和分頻10.2.3 定時器啟動10.3 定時器模式10.3.1 停止模式10.3.2 增計數(shù)模式10.3.3 連續(xù)模式10.3.4 增/減計數(shù)模式10.4 捕獲/比較模塊10.4.1 捕獲模式10.4.2 比較模式10.5 輸出單元10.5.1 輸出模式10.5.2 輸出控制模塊10.5.3 輸出舉例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕獲/比較控制寄存器CCTLx10.6.4 Timer_A中斷向量寄存器10.7 Timer_A的UART應(yīng)用 第11章 16位定時器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定時器長度11.2.2 定時器模式控制11.2.3 時鐘源選擇和分頻11.2.4 定時器啟動11.3 定時器模式11.3.1 停止模式11.3.2 增計數(shù)模式11.3.3 連續(xù)模式11.3.4 增/減計數(shù)模式11.4 捕獲/比較模塊11.4.1 捕獲模式11.4.2 比較模式11.5 輸出單元11.5.1 輸出模式11.5.2 輸出控制模塊11.5.3 輸出舉例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕獲/比較控制寄存器CCTLx11.6.4 Timer_B中斷向量寄存器第12章 USART通信模塊的UART功能12.1 異步模式12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多機模式12.1.5 地址位多機通信格式12.2 中斷和中斷允許12.2.1 USART接收允許12.2.2 USART發(fā)送允許12.2.3 USART接收中斷操作12.2.4 USART發(fā)送中斷操作12.3 控制和狀態(tài)寄存器12.3.1 USART控制寄存器UCTL12.3.2 發(fā)送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調(diào)整控制寄存器12.3.5 USART接收數(shù)據(jù)緩存URXBUF12.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF12.4 UART模式,低功耗模式應(yīng)用特性12.4.1 由UART幀啟動接收操作12.4.2 時鐘頻率的充分利用與UART的波特率12.4.3 多處理機模式對節(jié)約MSP430資源的支持12.5 波特率計算 第13章 USART通信模塊的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的從模式13.2 中斷與控制功能 13.2.1 USART接收/發(fā)送允許位及接收操作13.2.2 USART接收/發(fā)送允許位及發(fā)送操作13.2.3 USART接收中斷操作13.2.4 USART發(fā)送中斷操作13.3 控制與狀態(tài)寄存器13.3.1 USART控制寄存器13.3.2 發(fā)送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調(diào)制控制寄存器13.3.5 USART接收數(shù)據(jù)緩存URXBUF13.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF第14章 比較器Comparator_A14.1 概 述14.2 比較器A原理14.2.1 輸入模擬開關(guān)14.2.2 輸入多路切換14.2.3 比較器14.2.4 輸出濾波器14.2.5 參考電平發(fā)生器14.2.6 比較器A中斷電路14.3 比較器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比較器A應(yīng)用14.4.1 模擬信號在數(shù)字端口的輸入14.4.2 比較器A測量電阻元件14.4.3 兩個獨立電阻元件的測量系統(tǒng)14.4.4 比較器A檢測電流或電壓14.4.5 比較器A測量電流或電壓14.4.6 測量比較器A的偏壓14.4.7 比較器A的偏壓補償14.4.8 增加比較器A的回差第15章 模數(shù)轉(zhuǎn)換器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC內(nèi)核15.2.2 參考電平15.3 模擬輸入與多路切換15.3.1 模擬多路切換15.3.2 輸入信號15.3.3 熱敏二極管的使用15.4 轉(zhuǎn)換存儲15.5 轉(zhuǎn)換模式15.5.1 單通道單次轉(zhuǎn)換模式15.5.2 序列通道單次轉(zhuǎn)換模式15.5.3 單通道重復(fù)轉(zhuǎn)換模式15.5.4 序列通道重復(fù)轉(zhuǎn)換模式15.5.5 轉(zhuǎn)換模式之間的切換15.5.6 低功耗15.6 轉(zhuǎn)換時鐘與轉(zhuǎn)換速度15.7 采 樣15.7.1 采樣操作15.7.2 采樣信號輸入選擇15.7.3 采樣模式15.7.4 MSC位的使用15.7.5 采樣時序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 轉(zhuǎn)換存儲寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中斷標(biāo)志寄存器ADC12IFG.x和中斷允許寄存器ADC12IEN.x15.8.5 中斷向量寄存器ADC12IV15.9 ADC12接地與降噪第16章 FLASH型芯片的開發(fā)16.1 開發(fā)系統(tǒng)概述16.1.1 開發(fā)技術(shù)16.1.2 MSP430系列的開發(fā)16.1.3 MSP430F系列的開發(fā)16.2 FLASH型的FET開發(fā)方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 標(biāo)準(zhǔn)復(fù)位過程和進(jìn)入BSL過程16.3.2 BSL的UART協(xié)議16.3.3 數(shù)據(jù)格式16.3.4 退出BSL16.3.5 保護(hù)口令16.3.6 BSL的內(nèi)部設(shè)置和資源附錄A 尋址空間附錄B 指令說明B.1 指令匯總B.2 指令格式B.3 不增加ROM開銷的模擬指令B.4 指令說明(字母順序)B.5 用幾條指令模擬的宏指令附錄C MSP430系列單片機參數(shù)表附錄D MSP430系列單片機封裝形式附錄E MSP430系列器件命名

    標(biāo)簽: flash MSP 430 超低功耗

    上傳時間: 2014-04-28

    上傳用戶:sssnaxie

  • pic單片機實用教程(提高篇)

    pic單片機實用教程(提高篇)以介紹PIC16F87X型號單片機為主,并適當(dāng)兼顧PIC全系列,共分9章,內(nèi)容包括:存儲器;I/O端口的復(fù)位功能;定時器/計數(shù)器TMR1;定時器TMR2;輸入捕捉/輸出比較/脈寬調(diào)制CCP;模/數(shù)轉(zhuǎn)換器ADC;通用同步/異步收發(fā)器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特點:通俗易懂、可讀性強、系統(tǒng)全面、學(xué)練結(jié)合、學(xué)用并重、實例豐富、習(xí)題齊全。<br>本書作為Microchip公司大學(xué)計劃選擇用書,可廣泛適用于初步具備電子技術(shù)基礎(chǔ)和計算機知識基礎(chǔ)的學(xué)生、教師、單片機愛好者、電子制作愛好者、電器維修人員、電子產(chǎn)品開發(fā)設(shè)計者、工程技術(shù)人員閱讀。本教程全書共分2篇,即基礎(chǔ)篇和提高篇,分2冊出版,以適應(yīng)不同課時和不同專業(yè)的需要,也為教師和讀者增加了一種可選方案。 第1章 EEPROM數(shù)據(jù)存儲器和FIASH程序存儲器1.1 背景知識1.1.1 通用型半導(dǎo)體存儲器的種類和特點1.1.2 PIC單片機內(nèi)部的程序存儲器1.1.3 PIC單片機內(nèi)部的EEPROM數(shù)據(jù)存儲器1.1.4 PIC16F87X內(nèi)部EEPROM和FIASH操作方法1.2 與EEPROM相關(guān)的寄存器1.3 片內(nèi)EEPROM數(shù)據(jù)存儲器結(jié)構(gòu)和操作原理1.3.1 從EEPROM中讀取數(shù)據(jù)1.3.2 向EEPROM中燒寫數(shù)據(jù)1.4 與FLASH相關(guān)的寄存器1.5 片內(nèi)FLASH程序存儲器結(jié)構(gòu)和操作原理1.5.1 讀取FLASH程序存儲器1.5.2 燒寫FLASH程序存儲器1.6 寫操作的安全保障措施1.6.1 寫入校驗方法1.6.2 預(yù)防意外寫操作的保障措施1.7 EEPROM和FLASH應(yīng)用舉例1.7.1 EEPROM的應(yīng)用1.7.2 FIASH的應(yīng)用思考題與練習(xí)題第2章 輸入/輸出端口的復(fù)合功能2.1 RA端口2.1.1 與RA端口相關(guān)的寄存器2.1.2 電路結(jié)構(gòu)和工作原理2.1.3 編程方法2.2 RB端口2.2.1 與RB端口相關(guān)的寄存器2.2.2 電路結(jié)構(gòu)和工作原理2.2.3 編程方法2.3 RC端口2.3.1 與RC端口相關(guān)的寄存器2.3.2 電路結(jié)構(gòu)和工作原理2.3.3 編程方法2.4 RD端口2.4.1 與RD端口相關(guān)的寄存器2.4.2 電路結(jié)構(gòu)和工作原理2.4.3 編程方法2.5 RE端口2.5.1 與RE端口相關(guān)的寄存器2.5.2 電路結(jié)構(gòu)和工作原理2.5.3 編程方法2.6 PSP并行從動端口2.6.1 與PSP端口相關(guān)的寄存器2.6.2 電路結(jié)構(gòu)和工作原理2.7 應(yīng)用舉例思考題與練習(xí)題第3章 定時器/計數(shù)器TMR13.1 定時器/計數(shù)器TMR1模塊的特性3.2 定時器/計數(shù)器TMR1模塊相關(guān)的寄存器3.3 定時器/計數(shù)器TMR1模塊的電路結(jié)構(gòu)3.4 定時器/計數(shù)器TMR1模塊的工作原理3.4.1 禁止TMR1工作3.4.2 定時器工作方式3.4.3 計數(shù)器工作方式3.4.4 TMR1寄存器的賦值與復(fù)位3.5 定時器/計數(shù)器TMR1模塊的應(yīng)用舉例思考題與練習(xí)題第4章 定時器TMR24.1 定時器TMR2模塊的特性4.2 定時器TMR2模塊相關(guān)的寄存器4.3 定時器TMR2模塊的電路結(jié)構(gòu)4.4 定時器TMR2模塊的工作原理4.4.1 禁止TMR2工作4.4.2 定時器工作方式4.4.3 寄存器TMR2和PR2以及分頻器的復(fù)位4.4.4 TMR2模塊的初始化編程4.5 定時器TMR2模塊的應(yīng)用舉例思考題與練習(xí)題第5章 輸入捕捉/輸出比較/脈寬調(diào)制CCP5.1 輸入捕捉工作模式5.1.1 輸入捕捉摸式相關(guān)的寄存器5.1.2 輸入捕捉模式的電路結(jié)構(gòu)5.1.3 輸入捕捉摸式的工作原理5.1.4 輸入捕捉摸式的應(yīng)用舉例5.2 輸出比較工作模式5.2.1 輸出比較模式相關(guān)的寄存器5.2.2 輸出比較模式的電路結(jié)構(gòu)5.2.3 輸出比較模式的工作原理5.2.4 輸出比較模式的應(yīng)用舉例5.3 脈寬調(diào)制輸出工作模式5.3.1 脈寬調(diào)制模式相關(guān)的寄存器5.3.2 脈寬調(diào)制模式的電路結(jié)構(gòu)5.3.3 脈寬調(diào)制模式的工作原理5.3.4 脈定調(diào)制模式的應(yīng)用舉例5.4 兩個CCP模塊之間相互關(guān)系思考題與練習(xí)題第6章 模/數(shù)轉(zhuǎn)換器ADC6.1 背景知識6.1.1 ADC種類與特點6.1.2 ADC器件的工作原理6.2 PIC16F87X片內(nèi)ADC模塊6.2.1 ADC模塊相關(guān)的寄存器6.2.2 ADC模塊結(jié)構(gòu)和操作原理6.2.3 ADC模塊操作時間要求6.2.4 特殊情況下的A/D轉(zhuǎn)換6.2.5 ADC模塊的轉(zhuǎn)換精度和分辨率6.2.6 ADC模塊的內(nèi)部動作流程和傳遞函數(shù)6.2.7 ADC模塊的操作編程6.3 PIC16F87X片內(nèi)ADC模塊的應(yīng)用舉例思考題與練習(xí)題第7章 通用同步/異步收發(fā)器USART7.1 串行通信的基本概念7.1.1 串行通信的兩種基本方式7.1.2 串行通信中數(shù)據(jù)傳送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的碼型、編碼方式和幀結(jié)構(gòu)7.1.5 串行通信中的檢錯和糾錯方式7.1.6 串行通信組網(wǎng)方式7.1.7 串行通信接口電路和參數(shù)7.1.8 串行通信的傳輸速率7.2 PIC16F87X片內(nèi)通用同步/異步收發(fā)器USART模塊7.2.1 與USART模塊相關(guān)的寄存器7.2.2 USART波特率發(fā)生器BRG7.2.3 USART模塊的異步工作方式7.2.4 USART模塊的同步主控工作方式7.2.5 USART模塊的同步從動工作方式7.3 通用同步/異步收發(fā)器USART的應(yīng)用舉例思考題與練習(xí)題第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知識8.1.1 SPI接口信號描述8.1.2 基于SPI的系統(tǒng)構(gòu)成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相關(guān)的寄存器8.2.2 SPI接口的結(jié)構(gòu)和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的從動方式8.3 SPI接口的應(yīng)用舉例思考題與練習(xí)題第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C總線的背景知識9.1.1 名詞術(shù)語9.1.2 I(平方)C總線的技術(shù)特點9.1.3 I(平方)C總線的基本工作原理9.1.4 I(平方)C總線信號時序分析9.1.5 信號傳送格式9.1.6 尋址約定9.1.7 技術(shù)參數(shù)9.1.8 I(平方)C器件與I(平方)C總線的接線方式9.1.9 相兼容的SMBus總線9.2 與I(平方)C總線相關(guān)的寄存器9.3 典型信號時序的產(chǎn)生方法9.3.1 波特率發(fā)生器9.3.2 啟動信號9.3.3 重啟動信號9.3.4 應(yīng)答信號9.3.5 停止信號9.4 被控器通信方式9.4.1 硬件結(jié)構(gòu)9.4.2 被主控器尋址9.4.3 被控器接收——被控接收器9.4.4 被控器發(fā)送——被控發(fā)送器9.4.5 廣播式尋址9.5 主控器通信方式9.5.1 硬件結(jié)構(gòu)9.5.2 主控器發(fā)送——主控發(fā)送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的總線沖突和總線仲裁9.6.1 發(fā)送和應(yīng)答過程中的總線沖突9.6.2 啟動過程中的總線沖突9.6.3 重啟動過程中的總線沖突9.6.4 停止過程中的總線沖突9.7 I(平方)C總線的應(yīng)用舉例思考題與練習(xí)題附錄A 包含文件P16F877.INC附錄B 新版宏匯編器MPASM偽指令總表參考文獻(xiàn)

    標(biāo)簽: pic 單片機 實用教程

    上傳時間: 2013-12-14

    上傳用戶:xiaoyuer

  • LINUX系統(tǒng)分析與高級編程技術(shù)

    本書介紹Linux環(huán)境下的編程方法,內(nèi)容包括Linux系統(tǒng)命令、 Shell腳本、編程語言(gawk、Perl)、系統(tǒng)內(nèi)核、安全體系、X Window等,內(nèi)容豐富、論述全面,涵蓋了Linux系統(tǒng)的方方面面。本書附帶光盤包括了RedHat Linux系統(tǒng)的最新版本,及安裝方法,還包括本書的大量程序代碼,極大地方便了讀者,為使用和將要使用Linux系統(tǒng)的技術(shù)人員提供了較全面的參考。    目      錄前言第一篇   Linux系統(tǒng)介紹第1章   Linux簡介 …11.1   Linux 的起源 11.2   自由軟件基金會的GNU計劃 11.3   Linux 的發(fā)音 21.4   Linux 的特點 21.5   基本硬件要求 31.6   如何獲得Linux 31.6.1   從網(wǎng)上下載Linux 31.6.2   從光盤獲得Linux 31.7   涉及Linux 的Web 網(wǎng)址和新聞討論組 61.8   Linux 的不足之處 7第2章   外殼及常用命令 82.1   登錄和退出 82.2   Linux 系統(tǒng)的外殼 82.3   外殼的常用命令 92.3.1   更改帳號密碼 92.3.2   聯(lián)機幫助 92.3.3   遠(yuǎn)程登錄 92.3.4   文件或目錄處理 92.3.5   改變工作目錄 102.3.6   復(fù)制文件 102.3.7   移動或更改文件、目錄名稱 102.3.8   建立新目錄 102.3.9   刪除目錄 112.3.10   刪除文件 112.3.11   列出當(dāng)前所在的目錄位置 112.3.12   查看文件內(nèi)容 112.3.13   分頁查看文件內(nèi)容 112.3.14   查看目錄所占磁盤容量 112.3.15   文件傳輸 112.3.16   文件權(quán)限的設(shè)定 122.3.17   檢查自己所屬的工作組名稱 132.3.18   改變文件或目錄工作組所有權(quán) 132.3.19   改變文件或目錄的最后修改時間 132.3.20   文件的鏈接 132.3.21   文件中字符串的查尋 142.3.22   查尋文件或命令的路徑 142.3.23   比較文件或目錄的內(nèi)容 142.3.24   文件打印輸出 142.3.25   一般文件的打印 142.3.26   troff 文件的打印 142.3.27   打印機控制命令 142.3.28   進(jìn)程控制 152.3.29   外殼變量 162.3.30   環(huán)境變量 162.3.31   別名 162.3.32   歷史命令 172.3.33   文件的壓縮 172.3.34   管道命令的使用 172.3.35   輸入/輸出控制 182.3.36   查看系統(tǒng)中的用戶 182.3.37   改變用戶名 182.3.38   查看用戶名 182.3.39   查看當(dāng)前系統(tǒng)上所有工作站       的用戶 192.3.40   與某工作站上的用戶交談 192.3.41   檢查遠(yuǎn)程系統(tǒng)是否正常 192.3.42   電子郵件的使用簡介 19第3章   Linux系統(tǒng)的網(wǎng)絡(luò)功能 213.1   Linux支持的網(wǎng)絡(luò)協(xié)議 213.1.1   TCP/IP 213.1.2   TCP/IP 版本 6 213.1.3   IPX/SPX 213.1.4   AppleTalk 協(xié)議集 213.1.5   廣域網(wǎng) 223.1.6   ISDN 223.1.7   PPP、SLIP及PLIP 223.1.8   業(yè)余無線電 223.1.9   ATM 223.2   Linux系統(tǒng)下的文件共享和打印共享 223.2.1   Machintosh 環(huán)境 223.2.2   Windows 環(huán)境 223.2.3   Novell 環(huán)境 233.2.4   UNIX 環(huán)境 233.3   Linux系統(tǒng)中的Internet/Intranet功能 233.3.1   郵件 233.3.2   Web 服務(wù)器 243.3.3   Web 瀏覽器 243.3.4   FTP 服務(wù)器和客戶機 243.3.5   新聞服務(wù) 243.3.6   域名系統(tǒng) 243.3.7   DHCP和 bootp 243.3.8   NIS 243.4   Linux系統(tǒng)下應(yīng)用程序的遠(yuǎn)程執(zhí)行 243.4.1   Telnet 253.4.2   遠(yuǎn)程命令 253.4.3   X Window 253.5   Linux系統(tǒng)的網(wǎng)絡(luò)互連功能 253.5.1   路由器 253.5.2   網(wǎng)橋 253.5.3   IP偽裝 253.5.4   IP統(tǒng)計 263.5.5   IP 別名 263.5.6   流量限制器 263.5.7   防火墻 263.5.8   端口下傳 263.5.9   負(fù)載平衡 263.5.10   EQL 273.5.11   代理服務(wù)器 273.5.12   按需撥號 273.5.13   管道、移動IP和虛擬個人網(wǎng)絡(luò) 273.6   Linux系統(tǒng)中的網(wǎng)絡(luò)管理 273.6.1   Linux系統(tǒng)下的網(wǎng)絡(luò)管理應(yīng)用程序 273.6.2   SNMP 283.7   企業(yè)級Linux網(wǎng)絡(luò) 283.7.1   高可用性 283.7.2   RAID 283.7.3   冗余網(wǎng)絡(luò) 28第4章   Linux系統(tǒng)管理簡介 294.1   root 帳號 294.2   啟動和關(guān)閉系統(tǒng) 294.2.1   從軟盤啟動 294.2.2   使用LILO 啟動 294.2.3   關(guān)閉Linux系統(tǒng) 304.3   掛接文件系統(tǒng) 304.3.1   掛接軟盤 304.3.2   創(chuàng)建新的文件系統(tǒng) 304.3.3   卸載文件系統(tǒng) 314.4   檢查文件系統(tǒng) 314.5   使用文件作為交換區(qū) 314.6   系統(tǒng)和文件的備份 324.7   設(shè)置系統(tǒng) 334.7.1   設(shè)置系統(tǒng)名 334.7.2   使用維護(hù)磁盤 334.7.3   重新設(shè)置root 帳號口令 334.7.4   設(shè)置登錄信息 33第二篇   Linux高級語言及管理編程第5章   外殼編程 355.1   創(chuàng)建和運行外殼程序 355.1.1   創(chuàng)建外殼程序 355.1.2   運行外殼程序 355.2   使用外殼變量 365.2.1   給變量賦值 365.2.2   讀取變量的值 375.2.3   位置變量和其他系統(tǒng)變量 375.2.4   引號的作用 375.3   數(shù)值運算命令 385.4   條件表達(dá)式 405.4.1   if 表達(dá)式 405.4.2   case 表達(dá)式 415.5   循環(huán)語句 425.5.1   for 語句 435.5.2   while 語句 435.5.3   until 語句 445.6   shift 命令 445.7   select 語句 455.8   repeat 語句 465.9   子函數(shù) 46第6章   gawk語言編程 486.1   gawk的主要功能 486.2   如何執(zhí)行g(shù)awk程序 486.3   文件、記錄和字段 486.4   模式和動作 496.5   比較運算和數(shù)值運算 506.6   內(nèi)部函數(shù) 506.6.1   隨機數(shù)和數(shù)學(xué)函數(shù) 516.6.2   字符串的內(nèi)部函數(shù) 516.6.3   輸入輸出的內(nèi)部函數(shù) 526.7   字符串和數(shù)字 526.8   格式化輸出 526.9   改變字段分隔符 546.10   元字符 546.11   調(diào)用gawk程序 556.12   BEGIN和END 556.13   變量 566.14   內(nèi)置變量 566.15   控制結(jié)構(gòu) 576.15.1   if 表達(dá)式 576.15.2   while 循環(huán) 576.15.3   for 循環(huán) 586.15.4   next 和 exit 586.16   數(shù)組 586.17   用戶自定義函數(shù) 586.18   幾個實例 59第7章   Perl語言編程 607.1   什么是Perl 607.2   Perl的現(xiàn)狀 607.3   初試Perl 607.4   Perl變量 607.4.1   標(biāo)量 607.4.2   數(shù)組 637.4.3   相關(guān)數(shù)組 657.5   文件句柄和文件操作 657.6   循環(huán)結(jié)構(gòu) 667.6.1   foreach循環(huán) 667.6.2   判斷運算 667.6.3   for循環(huán) 677.6.4   while 和 until循環(huán) 677.7   條件結(jié)構(gòu) 677.8   字符匹配 687.9   替換和翻譯 697.9.1   替換 697.9.2   翻譯 707.10   子過程 707.10.1   子過程的定義 707.10.2   參數(shù) 707.10.3   返回值 707.11   Perl程序的完整例子 71第三篇   Linux系統(tǒng)內(nèi)核分析第8章   Linux內(nèi)核簡介 738.1   系統(tǒng)初始化 738.2   系統(tǒng)運行 738.3   內(nèi)核提供的各種系統(tǒng)調(diào)用 748.3.1   進(jìn)程的基本概念和系統(tǒng)            的基本數(shù)據(jù)結(jié)構(gòu) 748.3.2   創(chuàng)建和撤消進(jìn)程 748.3.3   執(zhí)行程序 748.4   存取文件系統(tǒng) 75第9章   系統(tǒng)進(jìn)程 769.1   什么是進(jìn)程 769.2   進(jìn)程的結(jié)構(gòu) 769.3   進(jìn)程調(diào)度 789.4   進(jìn)程使用的文件 799.5   進(jìn)程使用的虛擬內(nèi)存 809.6   創(chuàng)建進(jìn)程 819.7   進(jìn)程的時間和計時器 819.7.1   實時時鐘 819.7.2   虛擬時鐘 819.7.3   形象時鐘 819.8   程序的執(zhí)行 829.8.1   ELF文件 829.8.2   腳本文件 82第10章   內(nèi)存管理 8310.1   內(nèi)存管理的作用 8310.2   虛擬內(nèi)存的抽象模型 8310.3   按需裝入頁面 8410.4   交換 8510.5   共享虛擬內(nèi)存 8510.6   存取控制 8510.7   高速緩存 8610.7.1   緩沖區(qū)高速緩存 8610.7.2   頁面高速緩存 8610.7.3   交換高速緩存 8610.7.4   硬件高速緩存 8610.8   系統(tǒng)頁面表 8610.9   頁面的分配和釋放 8710.9.1   頁面的分配 8810.9.2   頁面的釋放 8810.10   內(nèi)存映射 8810.11   請求調(diào)頁 8910.12   頁面高速緩存 8910.13   內(nèi)核交換守護(hù)進(jìn)程 90第11章   進(jìn)程間通信 9111.1   信號機制 9111.2   管道機制 9211.3  System V IPC 機制  9311.3.1   信息隊列 9311.3.2   信號量 9411.3.3   共享內(nèi)存 96第12章   PCI 9812.1   PCI 系統(tǒng) 9812.2   PCI地址空間 9812.3   PCI設(shè)置頭 9912.4   PCI I/O 和 PCI 內(nèi)存地址 10012.5   PCI-ISA橋 10012.6   PCI-PCI 橋 10012.7   PCI初始化 10112.7.1   Linux系統(tǒng)內(nèi)核有關(guān)PCI的      數(shù)據(jù)結(jié)構(gòu) 10112.7.2   PCI 設(shè)備驅(qū)動程序 10212.7.3   PCI BIOS 函數(shù) 10512.7.4   PCI Fixup 105第13章   中斷和中斷處理 10613.1   中斷 10613.2   可編程中斷控制器 10613.3   初始化中斷處理的數(shù)據(jù)結(jié)構(gòu) 10713.4   中斷處理 108第14章   設(shè)備驅(qū)動程序 10914.1   硬件設(shè)備的管理 10914.2   輪詢和中斷 11014.3   直接內(nèi)存存取 11014.4   內(nèi)存 11114.5   設(shè)備驅(qū)動程序和內(nèi)核之間的接口 11114.5.1   字符設(shè)備 11214.5.2   塊設(shè)備 11314.6   硬盤 11314.6.1   IDE 硬盤 11514.6.2   初始化IDE 硬盤子系統(tǒng) 11514.6.3   SCSI 硬盤 11514.6.4   初始化 SCSI 磁盤子系統(tǒng) 11614.6.5   傳遞塊設(shè)備請求 11814.7   網(wǎng)絡(luò)設(shè)備 11814.7.1   網(wǎng)絡(luò)設(shè)備文件名 11814.7.2   總線信息 11814.7.3   網(wǎng)絡(luò)接口標(biāo)記 11914.7.4   協(xié)議信息 11914.7.5   初始化網(wǎng)絡(luò)設(shè)備 119第15章   文件系統(tǒng) 12115.1   Linux文件系統(tǒng)概述 12115.2   ext2文件系統(tǒng) 12215.2.1   ext2的索引節(jié)點 12215.2.2   ext2超級塊 12415.2.3   ext2 數(shù)據(jù)塊組描述符 12415.2.4   ext2 中的目錄 12515.2.5   在ext2 文件系統(tǒng)中查找文件 12515.2.6   改變ext2 文件系統(tǒng)中文件             的大小 12615.3   VFS 12715.3.1   VFS 超級塊 12815.3.2   VFS 索引節(jié)點 12915.3.3   登記文件系統(tǒng) 12915.3.4   掛接文件系統(tǒng) 13015.3.5   在VFS中查找文件 13115.3.6   撤消文件系統(tǒng) 13115.3.7   VFS 索引節(jié)點緩存 13215.3.8   VFS目錄緩存 13215.4   緩沖區(qū)緩存 13315.5   /proc 文件系統(tǒng) 135第16章   網(wǎng)絡(luò)系統(tǒng) 13616.1   TCP/IP 網(wǎng)絡(luò)簡介 13616.2   TCP/IP網(wǎng)絡(luò)的分層 13716.3   BSD 套接口 13816.4   INET套接口層 14016.4.1   創(chuàng)建BSD 套接口 14116.4.2   給INET BSD 套接口指定地址 14116.4.3   在INET BSD套接口上創(chuàng)建連接 14216.4.4   監(jiān)聽INET BSD 套接口 14216.4.5   接收連接請求 14316.5   IP 層 14316.5.1   套接口緩沖區(qū) 14316.5.2   接收IP數(shù)據(jù)包 14416.5.3   發(fā)送IP數(shù)據(jù)包 14416.5.4   數(shù)據(jù)碎片 14416.6   地址解析協(xié)議 145第17章   系統(tǒng)內(nèi)核機制 14717.1   Bottom Half處理 14717.2   任務(wù)隊列 14817.3   計時器 14917.4   等待隊列 14917.5   信號量 150第四篇   Linux系統(tǒng)高級編程第18章   Linux內(nèi)核模塊編程 15118.1   一個簡單程序Hello World 15118.2   設(shè)備文件 15218.3    /proc文件系統(tǒng) 15618.4   使用/proc輸入 15818.5   與設(shè)備文件通信 16218.6   啟動參數(shù) 16918.7   系統(tǒng)調(diào)用 17018.8   阻塞進(jìn)程 17218.9   替換printk 17718.10   調(diào)度任務(wù) 178第19章   有關(guān)進(jìn)程通信的編程 18119.1   進(jìn)程間通信簡介 18119.2   半雙工UNIX管道 18119.2.1   基本概念 18119.2.2   使用C語言創(chuàng)建管道 18219.2.3   創(chuàng)建管道的簡單方法 18519.2.4   使用管道的自動操作 18719.2.5   使用半雙工管道時的注意事項 18819.3   命名管道 18819.3.1   基本概念 18819.3.2   創(chuàng)建FIFO 18819.3.3   FIFO操作 18919.3.4   FIFO的阻塞 19019.3.5    SIGPIPE信號 19019.4   System V IPC 19019.4.1   基本概念 19019.4.2   消息隊列基本概念 19119.4.3   系統(tǒng)調(diào)用msgget() 19419.4.4   系統(tǒng)調(diào)用msgsnd() 19519.4.5   系統(tǒng)調(diào)用msgctl() 19719.4.6   一個msgtool的實例 19919.5   使用信號量編程 20119.5.1   基本概念 20119.5.2   系統(tǒng)調(diào)用semget() 20219.5.3   系統(tǒng)調(diào)用semop() 20319.5.4   系統(tǒng)調(diào)用semctl() 20419.5.5   使用信號量集的實例:semtool 20519.6   共享內(nèi)存 20919.6.1   基本概念 20919.6.2   系統(tǒng)內(nèi)部用戶數(shù)據(jù)結(jié)構(gòu)             shmid_ds 20919.6.3   系統(tǒng)調(diào)用shmget() 21019.6.4   系統(tǒng)調(diào)用shmat() 21119.6.5   系統(tǒng)調(diào)用shmctl() 21119.6.6   系統(tǒng)調(diào)用shmdt() 21219.6.7   使用共享內(nèi)存的實例:shmtool 212第20章   高級線程編程 21520.1   線程的概念和用途 21520.2   一個簡單的例子 21520.3   線程同步 21720.4   使用信號量協(xié)調(diào)程序 21820.5   信號量的實現(xiàn) 22020.5.1   Semaphore.h 22020.5.2   Semaphore.c 221第21章   Linux系統(tǒng)網(wǎng)絡(luò)編程 22521.1   什么是套接口 22521.2   兩種類型的Internet套接口 22521.3   網(wǎng)絡(luò)協(xié)議分層 22521.4   數(shù)據(jù)結(jié)構(gòu) 22521.5   IP地址和如何使用IP地址 22621.5.1   socket() 22621.5.2   bind() 22621.5.3   connect() 22721.5.4   listen() 22821.5.5   accept() 22821.5.6   send() 和 recv() 22921.5.7   sendto() 和 recvfrom() 23021.5.8   close() 和 shutdown() 23021.5.9   getpeername() 23121.5.10   gethostname() 23121.6   DNS 23121.7   客戶機/服務(wù)器模式 23221.8   簡單的數(shù)據(jù)流服務(wù)器程序 23221.9   簡單的數(shù)據(jù)流客戶機程序 23421.10   數(shù)據(jù)報套接口 23521.11   阻塞 237第22章   Linux I/O端口編程 24022.1   如何在 C 語言下使用I/O端口 24022.1.1   一般的方法 24022.1.2   另一個替代方法: /dev/port 24122.2   硬件中斷 與 DMA 存取 24122.3   高精確的時間 24122.3.1   延遲時間 24122.3.2   時間的量測 24322.4   使用其他程序語言 24322.5   一些有用的 I/O 端口 24322.5.1   并行端口 24322.5.2   游戲端口 24422.5.3   串行端口 245第五篇   Linux系統(tǒng)安全分析第23章   系統(tǒng)管理員安全 24723.1   安全管理 24723.2   超級用戶 24723.3   文件系統(tǒng)安全 24723.3.1   Linux文件系統(tǒng)概述 24723.3.2   設(shè)備文件 24823.3.3   /etc/mknod命令 24923.3.4   安全考慮 24923.3.5   find命令 25023.3.6   secure程序 25023.3.7   ncheck命令 25023.3.8   安裝和拆卸文件系統(tǒng) 25023.3.9   系統(tǒng)目錄和文件 25123.4   作為root運行的程序 25123.4.1   啟動系統(tǒng) 25123.4.2   init進(jìn)程 25123.4.3   進(jìn)入多用戶 25223.4.4   shutdown命令 25223.4.5   系統(tǒng)V的cron程序 25223.4.6   系統(tǒng)V版本2之后的cron程序 25223.4.7   /etc/profile 25323.5   /etc/passwd文件 25323.5.1   口令時效 25323.5.2   UID和GID 25423.6   /etc/group文件 25423.7   增加、刪除和移走用戶 25423.7.1   增加用戶 25423.7.2   刪除用戶 25523.7.3   將用戶移到另一個系統(tǒng) 25523.8   安全檢查 25523.8.1   記帳 25523.8.2   其他檢查命令 25623.8.3   安全檢查程序的問題 25623.8.4   系統(tǒng)泄密后怎么辦 25723.9   加限制的環(huán)境 25823.9.1   加限制的外殼 25823.9.2   用chroot()限制用戶 25823.10   小系統(tǒng)安全 25923.11   物理安全 25923.12   用戶意識 26023.13   系統(tǒng)管理員意識 26123.13.1   保持系統(tǒng)管理員個人的               登錄安全 26123.13.2   保持系統(tǒng)安全 261第24章   系統(tǒng)程序員安全 26324.1   系統(tǒng)子程序 26324.1.1   I/O子程序 26324.1.2   進(jìn)程控制 26324.1.3   文件屬性 26424.1.4   UID和GID的處理 26524.2   標(biāo)準(zhǔn)C程序庫 26524.2.1   標(biāo)準(zhǔn)I/O 26524.2.2   /etc/passwd的處理 26624.2.3   /etc/group的處理 26724.2.4   加密子程序 26824.2.5   運行外殼 26824.3   編寫安全的C程序 26824.3.1   需要考慮的安全問題 26824.3.2   SUID/SGID程序指導(dǎo)準(zhǔn)則 26924.3.3   編譯、安裝SUID/SGID程序             的方法 26924.4   root用戶程序的設(shè)計 270第25章   Linux系統(tǒng)的網(wǎng)絡(luò)安全 27225.1   UUCP系統(tǒng)概述 27225.1.1   UUCP命令 27225.1.2   uux命令 27225.1.3   uucico程序 27325.1.4   uuxqt程序 27325.2   UUCP的安全問題 27325.2.1   USERFILE文件 27325.2.2   L.cmds文件 27425.2.3   uucp登錄 27425.2.4   uucp使用的文件和目錄 27425.3   HONEYDANBER UUCP 27525.3.1   HONEYDANBER UUCP與           老UUCP的差別 27525.3.2   登錄名規(guī)則 27625.3.3   MACHINE規(guī)則 27725.3.4   組合MACHINE和LOGNAME             規(guī)則 27825.3.5   uucheck命令 27825.3.6   網(wǎng)關(guān) 27825.3.7   登錄文件檢查 27925.4   其他網(wǎng)絡(luò) 27925.4.1   遠(yuǎn)程作業(yè)登錄 27925.4.2   NSC網(wǎng)絡(luò)系統(tǒng) 28025.5   通信安全 28025.5.1   物理安全 28025.5.2   加密 28125.5.3   用戶身份鑒別 28225.6   SUN OS系統(tǒng)的網(wǎng)絡(luò)安全 28325.6.1   確保NFS的安全 28325.6.2   NFS安全性方面的缺陷 28425.6.3   遠(yuǎn)程過程調(diào)用鑒別 28425.6.4   Linux鑒別機制 28425.6.5   DES鑒別系統(tǒng) 28525.6.6   公共關(guān)鍵字的編碼 28625.6.7   網(wǎng)絡(luò)實體的命名 28625.6.8   DES鑒別系統(tǒng)的應(yīng)用 28725.6.9   遺留的安全問題 28725.6.10   性能 28825.6.11   啟動和setuid程序引起的問題 28825.6.12   小結(jié) 289第26章   Linux系統(tǒng)的用戶安全性 29026.1   口令安全 29026.2   文件許可權(quán) 29026.3   目錄許可 29126.4   umask命令 29126.5   設(shè)置用戶ID和同組用戶ID許可 29126.6   cp mv ln和cpio命令 29126.7   su和newgrp命令 29226.7.1   su命令 29226.7.2   newgrp命令 29226.8   文件加密 29226.9   其他安全問題 29326.9.1   用戶的.profile文件 29326.9.2   ls -a 29326.9.3   .exrc文件 29326.9.4   暫存文件和目錄 29326.9.5   UUCP和其他網(wǎng)絡(luò) 29326.9.6   特洛伊木馬 29426.9.7   誘騙 29426.9.8   計算機病毒 29426.9.9   要離開自己已登錄的終端 29426.9.10   智能終端 29426.9.11   斷開與系統(tǒng)的連接 29426.9.12   cu命令 29526.10   保持帳戶安全的要點 295第六篇   X window系統(tǒng)的內(nèi)部結(jié)構(gòu)和使用第27章  X Window系統(tǒng)的基本知識 29727.1   X Window系統(tǒng)介紹 29727.1.1   X的特點 29727.1.2   什么是窗口系統(tǒng) 29827.1.3   X發(fā)展的歷史 29927.1.4   X的產(chǎn)品 29927.1.5   MIT發(fā)行的X 29927.2   X的基本結(jié)構(gòu) 30227.2.1   X 的基本元素 30327.2.2   服務(wù)程序和客戶程序如何             交互通信 30427.2.3   X 的網(wǎng)絡(luò)概況 30627.3   從用戶界面的角度概觀X 30727.3.1   管理界面:窗口管理器 30727.3.2   應(yīng)用程序界面和工具箱 30927.3.3   其他系統(tǒng)角度 30927.4   術(shù)語和符號 31027.4.1   術(shù)語 31027.4.2   符號 31127.5   啟動和關(guān)閉X 31227.5.1   啟動X 31227.5.2   執(zhí)行X程序的方式 31327.5.3   關(guān)閉X 31427.6   窗口管理器基礎(chǔ)—uwm 31527.6.1   什么是窗口管理器 31527.6.2   啟動uwm 31527.6.3   基本窗口操作 —uwm             的菜單 31527.6.4   移動窗口 31627.6.5   重定窗口大小 31627.6.6   建立新窗口 31627.6.7   管理屏幕空間 31827.6.8   中止應(yīng)用程序窗口 32027.6.9   激活uwm菜單的其他方式 32027.7   使用 x的網(wǎng)絡(luò)設(shè)備 32027.7.1   指定遠(yuǎn)程終端機—display             選項 32127.7.2   實際使用遠(yuǎn)程的顯示器 32227.7.3   控制存取顯示器—xhost 32227.8   終端機模擬器—詳細(xì)介紹xterm 32327.8.1   選擇xterm功能—菜單與       命令行選項 32327.8.2   滾動xterm屏幕 32427.8.3   記錄與終端機的交互過程—寫           記錄 32527.8.4   剪貼文本 32527.8.5   使用Tektronix模擬功能 32627.8.6   使用不同的字體 32727.8.7   使用顏色 32727.8.8   其他xterm選項 32727.8.9   設(shè)定終端機鍵盤 328第28章   實用程序和工具 32928.1   實用程序 32928.2   保存、顯示和打印屏幕圖像 33028.3   使用X的應(yīng)用程序 33228.3.1   文字編輯器—Xedit 33328.3.2   郵件/信息處理系統(tǒng)—xmh 33628.4   示例和游戲程序 33628.4.1   找出通過隨機迷宮的             路徑—maze 33628.4.2   擔(dān)任鼠標(biāo)指針的大眼睛—             xeyes 33628.4.3   智慧盤游戲—puzzle 33728.4.4   打印一個大X標(biāo)志—xlogo 33728.4.5   跳動的多面體—ico 33728.4.6   動態(tài)幾何圖案—muncher與             plaid 33728.7   顯示信息和狀態(tài)的程序 33728.7.1   列出X服務(wù)程序的特征—    xdpyinfo 33828.7.2   獲取有關(guān)窗口的信息 33828.7.3   觀察X的事件—xev 340第29章   定制X Window系統(tǒng) 34129.1   使用X的字體和顏色 34129.1.1   字體初步 34129.1.2   字體命名 34229.1.3   觀察特定字體的內(nèi)容—xfd 34329.1.4   保存字體和位置 34329.1.5   例子:在你的服務(wù)程序中      增加新字體 34529.1.6   使用X的顏色 34629.2   定義和使用圖形 34729.2.1   系統(tǒng)圖形程序庫 34729.2.2   交互編輯圖形—bitmap 34729.2.3   編輯圖形的其他方法 34929.2.4   定制根窗口—xsetroot 34929.3   定義應(yīng)用程序的缺省選項—           Resources 35029.3.1   什么是資源 35029.3.2   XToolkit 35129.3.3   管理資源—資源管理器 35329.3.4   資源的類型—如何指定值 35829.4   實際使用資源 35929.4.1   在何處保存資源的缺省值 35929.4.2   在服務(wù)程序上保存缺省值—    xrdb 36329.4.3   常見的錯誤和修正 36629.5   定制鍵盤和鼠標(biāo) 36729.5.1   實際使用轉(zhuǎn)換 36829.5.2   轉(zhuǎn)換—格式和規(guī)則 37429.5.3   轉(zhuǎn)換規(guī)范中常見的問題 37729.6   鍵盤和鼠標(biāo)—對應(yīng)和參數(shù) 37929.6.1   鍵盤和鼠標(biāo)映射—xmodmap 37929.6.2   鍵盤和鼠標(biāo)參數(shù)設(shè)定—xset 38229.7   進(jìn)一步介紹和定制uwm 38429.7.1   uwm的新特征 38429.7.2   定制uwm 38629.8   顯示器管理器—xdm 39029.8.1   需要做些什么 39029.8.2   xdm 39129.8.3   xdm的更多信息 39229.8.4   uwm配置 395附錄A   Gcc使用介紹 396附錄B   安裝X Window窗口系統(tǒng) 410

    標(biāo)簽: LINUX 系統(tǒng)分析 高級編程

    上傳時間: 2013-11-10

    上傳用戶:changeboy

  • net_tcp.h

    /* ********************************************************************************************************* *                                             uC/TCP-IP V2 *                                      The Embedded TCP/IP Suite * *                          (c) Copyright 2003-2010; Micrium, Inc.; Weston, FL * *               All rights reserved.  Protected by international copyright laws. * *               uC/TCP-IP is provided in source form to registered licensees ONLY.  It is  *               illegal to distribute this source code to any third party unless you receive  *               written permission by an authorized Micrium representative.  Knowledge of  *               the source code may NOT be used to develop a similar product. * *               Please help us continue to provide the Embedded community with the finest  *               software available.  Your honesty is greatly appreciated. * *               You can contact us at www.micrium.com. ********************************************************************************************************* */ /* ********************************************************************************************************* * *                                          NETWORK TCP LAYER *                                   (TRANSMISSION CONTROL PROTOCOL) * * Filename      : net_tcp.h * Version       : V2.10 * Programmer(s) : ITJ ********************************************************************************************************* * Note(s)       : (1) Supports Transmission Control Protocol as described in RFC #793 with the following *                     restrictions/constraints : * *                     (a) TCP Security & Precedence NOT supported               RFC # 793, Section 3.6 * *                     (b) TCP Urgent Data           NOT supported               RFC # 793, Section 3.7 *                                                                                'The Communication of *                                                                                  Urgent Information' * *                     (c) The following TCP options NOT supported :              * *                         (1) Window Scale                                      RFC #1072, Section 2 *                                                                               RFC #1323, Section 2 *                         (2) Selective Acknowledgement (SACK)                  RFC #1072, Section 3 *                                                                               RFC #2018 *                                                                               RFC #2883 *                         (3) TCP Echo                                          RFC #1072, Section 4 *                         (4) Timestamp                                         RFC #1323, Section 3.2 *                         (5) Protection Against Wrapped Sequences (PAWS)       RFC #1323, Section 4 * *                     (d) #### IP-Options-to-TCP-Connection                     RFC #1122, Section 4.2.3.8 *                                Handling NOT           supported * *                     (e) #### ICMP-Error-Message-to-TCP-Connection             RFC #1122, Section 4.2.3.9 *                                Handling NOT currently supported * *                 (2) TCP Layer assumes/requires Network Socket Layer (see 'net_sock.h  MODULE  Note #1a2'). ********************************************************************************************************* */ /*$PAGE*/ /* ********************************************************************************************************* *                                               MODULE * * Note(s) : (1) TCP Layer module is NOT required for UDP-to-Application API configuration. * *               See also 'net_cfg.h  TRANSPORT LAYER CONFIGURATION' *                      & 'net_cfg.h  USER DATAGRAM PROTOCOL LAYER CONFIGURATION'. * *               See also 'net_tcp.h  Note #2'. * *           (2) The following TCP-module-present configuration value MUST be pre-#define'd in  *               'net_cfg_net.h' PRIOR to all other network modules that require TCP Layer *               configuration (see 'net_cfg_net.h  TCP LAYER CONFIGURATION  Note #2b') : * *                   NET_TCP_MODULE_PRESENT ********************************************************************************************************* */ #ifdef   NET_TCP_MODULE_PRESENT                                 /* See Note #2.                                         */ /* ********************************************************************************************************* *                                               EXTERNS ********************************************************************************************************* */ #if ((defined(NET_TCP_MODULE)) && \      (defined(NET_GLOBALS_EXT))) #define  NET_TCP_EXT #else #define  NET_TCP_EXT  extern #endif /*$PAGE*/ /* ********************************************************************************************************* *                                               DEFINES ********************************************************************************************************* */ /* ********************************************************************************************************* *                                         TCP HEADER DEFINES * * Note(s) : (1) The following TCP value MUST be pre-#define'd in 'net_def.h' PRIOR to 'net_buf.h' so that *               the Network Buffer Module can configure maximum buffer header size (see 'net_def.h  TCP *               LAYER DEFINES' & 'net_buf.h  NETWORK BUFFER INDEX & SIZE DEFINES  Note #1') : * *               (a) NET_TCP_HDR_SIZE_MAX                  60        (NET_TCP_HDR_LEN_MAX *                                                                  * NET_TCP_HDR_LEN_WORD_SIZE) * *           (2) Urgent pointer & data NOT supported (see 'net_tcp.h  Note #1b'). ********************************************************************************************************* */ #define  NET_TCP_HDR_LEN_MASK                         0xF000u #define  NET_TCP_HDR_LEN_SHIFT                            12u #define  NET_TCP_HDR_LEN_NONE                              0u #define  NET_TCP_HDR_LEN_MIN                               5u #define  NET_TCP_HDR_LEN_MAX                              15u #define  NET_TCP_HDR_LEN_WORD_SIZE                       CPU_WORD_SIZE_32 #define  NET_TCP_HDR_SIZE_MIN                           (NET_TCP_HDR_LEN_MIN * NET_TCP_HDR_LEN_WORD_SIZE) #if 0                                                           /* See Note #1a.                                        */ #define  NET_TCP_HDR_SIZE_MAX                           (NET_TCP_HDR_LEN_MAX * NET_TCP_HDR_LEN_WORD_SIZE) #endif #define  NET_TCP_HDR_SIZE_TOT_MIN                       (NET_IP_HDR_SIZE_TOT_MIN + NET_TCP_HDR_SIZE_MIN) #define  NET_TCP_HDR_SIZE_TOT_MAX                       (NET_IP_HDR_SIZE_TOT_MAX + NET_TCP_HDR_SIZE_MAX) #define  NET_TCP_PSEUDO_HDR_SIZE                          12u   /*  = sizeof(NET_TCP_PSEUDO_HDR)                        */ #define  NET_TCP_PORT_NBR_RESERVED                       NET_PORT_NBR_RESERVED #define  NET_TCP_PORT_NBR_NONE                           NET_TCP_PORT_NBR_RESERVED #define  NET_TCP_HDR_URG_PTR_NONE                     0x0000u   /* See Note #2.                                         */ /*$PAGE*/ /* ********************************************************************************************************* *                                       TCP HEADER FLAG DEFINES * * Note(s) : (1) See 'TCP HEADER  Note #2' for flag fields. * *           (2) Urgent pointer & data NOT supported (see 'net_tcp.h  Note #1b'). ********************************************************************************************************* */ #define  NET_TCP_HDR_FLAG_MASK                        0x0FFFu #define  NET_TCP_HDR_FLAG_NONE                    DEF_BIT_NONE #define  NET_TCP_HDR_FLAG_RESERVED                    0x0FE0u   /* MUST be '0'.                                         */ #define  NET_TCP_HDR_FLAG_URGENT                  DEF_BIT_05    /* See Note #2.                                         */ #define  NET_TCP_HDR_FLAG_ACK                     DEF_BIT_04 #define  NET_TCP_HDR_FLAG_PUSH                    DEF_BIT_03 #define  NET_TCP_HDR_FLAG_RESET                   DEF_BIT_02 #define  NET_TCP_HDR_FLAG_SYNC                    DEF_BIT_01 #define  NET_TCP_HDR_FLAG_FIN                     DEF_BIT_00 #define  NET_TCP_HDR_FLAG_CLOSE                   NET_TCP_HDR_FLAG_FIN /* ********************************************************************************************************* *                                          TCP FLAG DEFINES ********************************************************************************************************* */                                                                 /* ------------------ NET TCP FLAGS ------------------- */ #define  NET_TCP_FLAG_NONE                        DEF_BIT_NONE #define  NET_TCP_FLAG_USED                        DEF_BIT_00    /* TCP conn cur used; i.e. NOT in free TCP conn pool.   */                                                                 /* ------------------ TCP TX  FLAGS ------------------- */                                                                 /* TCP tx flags copied from TCP hdr flags.              */ #define  NET_TCP_FLAG_TX_FIN                      NET_TCP_HDR_FLAG_FIN #define  NET_TCP_FLAG_TX_CLOSE                    NET_TCP_FLAG_TX_FIN #define  NET_TCP_FLAG_TX_SYNC                     NET_TCP_HDR_FLAG_SYNC #define  NET_TCP_FLAG_TX_RESET                    NET_TCP_HDR_FLAG_RESET #define  NET_TCP_FLAG_TX_PUSH                     NET_TCP_HDR_FLAG_PUSH #define  NET_TCP_FLAG_TX_ACK                      NET_TCP_HDR_FLAG_ACK #define  NET_TCP_FLAG_TX_URGENT                   NET_TCP_HDR_FLAG_URGENT #define  NET_TCP_FLAG_TX_BLOCK                    DEF_BIT_07                                                                 /* ------------------ TCP RX  FLAGS ------------------- */ #define  NET_TCP_FLAG_RX_DATA_PEEK                DEF_BIT_08 #define  NET_TCP_FLAG_RX_BLOCK                    DEF_BIT_15 /*$PAGE*/ /* ********************************************************************************************************* *                                          TCP TYPE DEFINES * * Note(s) : (1) NET_TCP_TYPE_&&& #define values specifically chosen as ASCII representations of the TCP *               types.  Memory displays of TCP types will display with their chosen ASCII names. ********************************************************************************************************* */                                                                 /* ------------------ NET TCP TYPES ------------------- */ #if     (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) #define  NET_TCP_TYPE_NONE                        0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x54435020u   /* "TCP " in ASCII.                                     */ #else #if     (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_32) #define  NET_TCP_TYPE_NONE                        0x454E4F4Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x20504354u   /* "TCP " in ASCII.                                     */ #elif   (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_16) #define  NET_TCP_TYPE_NONE                        0x4F4E454Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x43542050u   /* "TCP " in ASCII.                                     */ #else                                                           /* Dflt CPU_WORD_SIZE_08.                               */ #define  NET_TCP_TYPE_NONE                        0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x54435020u   /* "TCP " in ASCII.                                     */ #endif #endif /* ********************************************************************************************************* *                                     TCP SEQUENCE NUMBER DEFINES * * Note(s) : (1) TCP initial transmit sequence number is incremented by a fixed value, preferably a large *               prime value or a large value with multiple unique factors. * *               (a) One reasonable TCP initial transmit sequence number increment value example : * *                       65527  =  37 * 23 * 11 * 7 * * *               #### NET_TCP_TX_SEQ_NBR_CTR_INC could be developer-configured in 'net_cfg.h'. * *               See also 'NET_TCP_TX_GET_SEQ_NBR()  Notes #1b2 & #1c2'. ********************************************************************************************************* */ #define  NET_TCP_SEQ_NBR_NONE                              0u #define  NET_TCP_ACK_NBR_NONE                            NET_TCP_SEQ_NBR_NONE #define  NET_TCP_TX_SEQ_NBR_CTR_INC                    65527u   /* See Note #1.                                         */ #define  NET_TCP_ACK_NBR_DUP_WIN_SIZE_SCALE                4 /*$PAGE*/ /* ********************************************************************************************************* *                                    TCP DATA/TOTAL LENGTH DEFINES * * Note(s) : (1) (a) TCP total length #define's (NET_TCP_TOT_LEN)  relate to the total size of a complete *                   TCP packet, including the packet's TCP header.  Note that a complete TCP packet MAY *                   be fragmented in multiple Internet Protocol packets. * *               (b) TCP data  length #define's (NET_TCP_DATA_LEN) relate to the data  size of a complete *                   TCP packet, equal to the total TCP packet length minus its TCP header size.  Note  *                   that a complete TCP packet MAY be fragmented in multiple Internet Protocol packets. ********************************************************************************************************* */                                                                                 /* See Notes #1a & #1b.                 */ #define  NET_TCP_DATA_LEN_MIN                              0u #define  NET_TCP_TOT_LEN_MIN                            (NET_TCP_HDR_SIZE_MIN + NET_TCP_DATA_LEN_MIN) #define  NET_TCP_TOT_LEN_MAX                            (NET_IP_TOT_LEN_MAX   - NET_IP_HDR_SIZE_MIN ) #define  NET_TCP_DATA_LEN_MAX                           (NET_TCP_TOT_LEN_MAX  - NET_TCP_HDR_SIZE_MIN) /*$PAGE*/ /* ********************************************************************************************************* *                                      TCP SEGMENT SIZE DEFINES * * Note(s) : (1) (a) RFC # 879, Section 3 states that the TCP Maximum Segment Size "counts only *                   data octets in the segment, ... not the TCP header or the IP header". * *               (b) RFC #1122, Section 4.2.2.6 requires that : * *                   (1) "The MSS value to be sent in an MSS option must be less than or equal to * *                        (A) MMS_R - 20 * *                        where MMS_R is the maximum size for a transport-layer message that can *                        be received." * *                   (2) "If an MSS option is not received at connection setup, TCP MUST assume a *                        default send MSS of 536 (576 - 40)." * *                   See also 'net_ip.h  IP DATA/TOTAL LENGTH DEFINES  Note #1'. ********************************************************************************************************* */                                                                                         /* See Note #1.                 */ #define  NET_TCP_MAX_SEG_SIZE_DFLT                      (NET_IP_MAX_DATAGRAM_SIZE_DFLT - NET_IP_HDR_SIZE_MIN - NET_TCP_HDR_SIZE_MIN) #define  NET_TCP_MAX_SEG_SIZE_DFLT_RX                    NET_TCP_DATA_LEN_MAX           /* See Note #1b1.               */ #define  NET_TCP_MAX_SEG_SIZE_DFLT_TX                    NET_TCP_MAX_SEG_SIZE_DFLT      /* See Note #1b2.               */ #define  NET_TCP_MAX_SEG_SIZE_NONE                         0u #define  NET_TCP_MAX_SEG_SIZE_MIN                        NET_TCP_MAX_SEG_SIZE_DFLT #define  NET_TCP_MAX_SEG_SIZE_MAX                        NET_TCP_DATA_LEN_MAX #define  NET_TCP_SEG_LEN_MIN                             NET_TCP_DATA_LEN_MIN #define  NET_TCP_SEG_LEN_MAX                             NET_TCP_DATA_LEN_MAX #define  NET_TCP_SEG_LEN_SYNC                              1u #define  NET_TCP_SEG_LEN_FIN                               1u #define  NET_TCP_SEG_LEN_CLOSE                           NET_TCP_SEG_LEN_FIN #define  NET_TCP_SEG_LEN_ACK                               0u #define  NET_TCP_SEG_LEN_RESET                             0u #define  NET_TCP_SEG_LEN_PROBE                             0u #define  NET_TCP_DATA_LEN_TX_SYNC                          0u #define  NET_TCP_DATA_LEN_TX_FIN                           0u #define  NET_TCP_DATA_LEN_TX_CLOSE                       NET_TCP_DATA_LEN_TX_FIN #define  NET_TCP_DATA_LEN_TX_ACK                           0u #define  NET_TCP_DATA_LEN_TX_PROBE_NO_DATA                 0u #define  NET_TCP_DATA_LEN_TX_PROBE_DATA                    1u #define  NET_TCP_DATA_LEN_TX_RESET                         0u #define  NET_TCP_TX_PROBE_DATA                          0x00u /* ********************************************************************************************************* *                                       TCP WINDOW SIZE DEFINES * * Note(s) : (1) Although NO RFC specifies the absolute minimum TCP connection window size value allowed, *               RFC #793, Section 3.7 'Data Communication : Managing the Window' states that for "the *               window ... there is an assumption that this is related to the currently available data *               buffer space available for this connection". ********************************************************************************************************* */ #define  NET_TCP_WIN_SIZE_NONE                             0u #define  NET_TCP_WIN_SIZE_MIN                            NET_TCP_MAX_SEG_SIZE_MIN #define  NET_TCP_WIN_SIZE_MAX                            DEF_INT_16U_MAX_VAL /*$PAGE*/ /* ********************************************************************************************************* *                                     TCP HEADER OPTIONS DEFINES * * Note(s) : (1) See the following RFC's for TCP options summary : * *               (a) RFC # 793, Section  3.1 'Header Format : Options' *               (b) RFC #1122; Sections 4.2.2.5, 4.2.2.6 * *           (2) TCP option types are encoded in the first octet for each TCP option as follows : * *                           -------- *                           | TYPE | *                           -------- * *               The TCP option type value determines the TCP option format : * *               (a) The following TCP option types are single-octet TCP options -- i.e. the option type *                   octet is the ONLY octet for the TCP option. * *                   (1) TYPE =  0   End of Options List *                   (2) TYPE =  1   No Operation * * *               (b) All other TCP options MUST be multi-octet TCP options (see RFC #1122, Section 4.2.2.5) : * *                           ------------------------------ *                           | TYPE | LEN  |   TCP OPT    | *                           ------------------------------ * *                       where  *                               TYPE        Indicates the specific TCP option type *                               LEN         Indicates the total    TCP option length, in octets, including  *                                                the option type & the option length octets *                               TCP OPT     Additional TCP option octets, if any, that contain the remaining *                                                TCP option information * *                   The following TCP option types are multi-octet TCP options where the option's second *                   octet specify the total TCP option length, in octets, including the option type & the *                   option length octets : * *                   (1) TYPE =  2   Maximum Segment Size        See RFC # 793, Section  3.1 'Header Format : *                                                                   Options : Maximum Segment Size'; *                                                                   RFC #1122, Section 4.2.2.6; *                                                                   RFC # 879, Section 3 * *                   (2) TYPE =  3   Window  Scale               See 'net_tcp.h  Note #1c1' *                   (3) TYPE =  4   SACK Allowed                See 'net_tcp.h  Note #1c2' *                   (4) TYPE =  5   SACK Option                 See 'net_tcp.h  Note #1c2' *                   (5) TYPE =  6   Echo Request                See 'net_tcp.h  Note #1c3' *                   (6) TYPE =  7   Echo Reply                  See 'net_tcp.h  Note #1c3' *                   (7) TYPE =  8   Timestamp                   See 'net_tcp.h  Note #1c4' * *           (3) TCP header allows for a maximum option list length of 40 octets : * *                   NET_TCP_HDR_OPT_SIZE_MAX = NET_TCP_HDR_SIZE_MAX - NET_TCP_HDR_SIZE_MIN * *                                            = 60 - 20 * *                                            = 40 * *           (4) 'NET_TCP_OPT_SIZE'  MUST be pre-defined PRIOR to all definitions that require TCP option  *                size data type. ********************************************************************************************************* */ /*$PAGE*/ #define  NET_TCP_HDR_OPT_END_LIST                          0u #define  NET_TCP_HDR_OPT_NOP                               1u #define  NET_TCP_HDR_OPT_MAX_SEG_SIZE                      2u #define  NET_TCP_HDR_OPT_WIN_SCALE                         3u #define  NET_TCP_HDR_OPT_SACK_PERMIT                       4u #define  NET_TCP_HDR_OPT_SACK                              5u #define  NET_TCP_HDR_OPT_ECHO_REQ                          6u #define  NET_TCP_HDR_OPT_ECHO_REPLY                        7u #define  NET_TCP_HDR_OPT_TS                                8u #define  NET_TCP_HDR_OPT_PAD                             NET_TCP_HDR_OPT_END_LIST #define  NET_TCP_HDR_OPT_LEN_END_LIST                      1u #define  NET_TCP_HDR_OPT_LEN_NOP                           1u #define  NET_TCP_HDR_OPT_LEN_MAX_SEG_SIZE                  4u #define  NET_TCP_HDR_OPT_LEN_WIN_SCALE                     3u #define  NET_TCP_HDR_OPT_LEN_SACK_PERMIT                   2u #define  NET_TCP_HDR_OPT_LEN_ECHO_REQ                      6u #define  NET_TCP_HDR_OPT_LEN_ECHO_REPLY                    6u #define  NET_TCP_HDR_OPT_LEN_TS                           10u #define  NET_TCP_HDR_OPT_LEN_SACK_MIN                      6u #define  NET_TCP_HDR_OPT_LEN_SACK_MAX                     38u #define  NET_TCP_HDR_OPT_LEN_MIN                           1u #define  NET_TCP_HDR_OPT_LEN_MIN_LEN                       2u #define  NET_TCP_HDR_OPT_LEN_MAX                          38u typedef  CPU_INT32U  NET_TCP_OPT_SIZE;                          /* TCP opt size data type (see Note #4).                */ #define  NET_TCP_HDR_OPT_SIZE_WORD               (sizeof(NET_TCP_OPT_SIZE)) #define  NET_TCP_HDR_OPT_SIZE_MAX                       (NET_TCP_HDR_SIZE_MAX - NET_TCP_HDR_SIZE_MIN) #define  NET_TCP_HDR_OPT_NBR_MIN                           0u #define  NET_TCP_HDR_OPT_NBR_MAX                        (NET_TCP_HDR_OPT_SIZE_MAX / NET_TCP_HDR_OPT_SIZE_WORD) #define  NET_TCP_HDR_OPT_IX                              NET_TCP_HDR_SIZE_MIN /*$PAGE*/ /* ********************************************************************************************************* *                                TCP OPTION CONFIGURATION TYPE DEFINES * * Note(s) : (1) NET_TCP_OPT_CFG_TYPE_&&& #define values specifically chosen as ASCII representations of  *               the TCP option configuration types.  Memory displays of TCP option configuration buffers  *               will display the TCP option configuration TYPEs with their chosen ASCII names. ********************************************************************************************************* */                                                                 /* ---------------- TCP OPT CFG TYPES ----------------- */ #if     (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) #define  NET_TCP_OPT_CFG_TYPE_NONE                0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x4D535320u   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x57494E20u   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x53434B50u   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x5341434Bu   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x45524551u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x4543484Fu   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x54532020u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #else #if     (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_32) #define  NET_TCP_OPT_CFG_TYPE_NONE                0x454E4F4Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x2053534Du   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x204E4957u   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x504B4353u   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x4B434153u   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x51455245u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x4F484345u   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x20205354u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #elif   (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_16) #define  NET_TCP_OPT_CFG_TYPE_NONE                0x4F4E454Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x534D2053u   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x4957204Eu   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x4353504Bu   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x41534B43u   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x52455145u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x43454F48u   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x53542020u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #else                                                           /* Dflt CPU_WORD_SIZE_08.                               */ #define  NET_TCP_OPT_CFG_TYPE_NONE                0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x4D535320u   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x57494E20u   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x53434B50u   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x5341434Bu   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x45524551u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x4543484Fu   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x54532020u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #endif #endif /*$PAGE*/ /* ********************************************************************************************************* *                                   TCP CONNECTION TIMEOUT DEFINES * * Note(s) : (1) (a) (1) RFC #1122, Section 4.2.2.13 'DISCUSSION' states that "the graceful close algorithm *                       of TCP requires that the connection state remain defined on (at least) one end of *                       the connection, for a timeout period of 2xMSL ... During this period, the (remote  *                       socket, local socket) pair that defines the connection is busy and cannot be reused". * *                   (2) The following sections reiterate that the TIME-WAIT state timeout scalar is two *                       maximum segment lifetimes (2 MSL) : * *                       (A) RFC #793, Section 3.9 'Event Processing : SEGMENT ARRIVES : *                               Check Sequence Number : TIME-WAIT STATE' *                       (B) RFC #793, Section 3.9 'Event Processing : SEGMENT ARRIVES : *                               Check FIN Bit         : TIME-WAIT STATE' * *               (b) (1) RFC #793, Section 3.3 'Sequence Numbers : Knowing When to Keep Quiet' states that *                       "the Maximum Segment Lifetime (MSL) is ... to be 2 minutes.  This is an engineering *                       choice, and may be changed if experience indicates it is desirable to do so". * *                   (2) Microsoft Corporation's Windows XP defaults MSL to 15 seconds. ********************************************************************************************************* */                                                                                     /* Max seg timeout (see Note #1b) : */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_MIN_SEC   (  0u                           )   /* ... min  =  0 seconds            */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_MAX_SEC   (  2u * DEF_TIME_NBR_SEC_PER_MIN)   /* ... max  =  2 minutes            */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_DFLT_SEC  ( 15u                           )   /* ... dflt = 15 seconds            */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_SCALAR       2u                               /* ... scalar (see Note #1a).       */ #define  NET_TCP_CONN_TIMEOUT_CONN_DFLT_SEC     (120u * DEF_TIME_NBR_SEC_PER_MIN)   /* Dflt conn timeout = 120 minutes  */ #define  NET_TCP_CONN_TIMEOUT_USER_DFLT_SEC     ( 30u * DEF_TIME_NBR_SEC_PER_MIN)   /* Dflt user timeout =  30 minutes  */ /*$PAGE*/ /* ********************************************************************************************************* *                                        TCP CONNECTION STATES * * Note(s) : (1) See the following RFC's for TCP state machine summary : * *               (a) RFC # 793; Sections 3.2, 3.4, 3.5, 3.9 *               (b) RFC #1122; Sections 4.2.2.8, 4.2.2.10, 4.2.2.11, 4.2.2.13, 4.2.2.18, 4.2.2.20 * *           (2) (a) #### Additional closing-data-available state used for closing connections to allow the *                   application layer to receive any remaining data. * *                   See also 'net_tcp.c  NetTCP_RxPktConnHandlerFinWait1()  Note #2f5A2', *                            'net_tcp.c  NetTCP_RxPktConnHandlerFinWait2()  Note #2f5B', *                            'net_tcp.c  NetTCP_RxPktConnHandlerClosing()   Note #2d2B2a1B', *                          & 'net_tcp.c  NetTCP_RxPktConnHandlerLastAck()   Note #2d2A1b'. ********************************************************************************************************* */ #define  NET_TCP_CONN_STATE_NONE                           0u #define  NET_TCP_CONN_STATE_FREE                           1u #define  NET_TCP_CONN_STATE_CLOSED                        10u #define  NET_TCP_CONN_STATE_LISTEN                        20u #define  NET_TCP_CONN_STATE_SYNC_RXD                      30u #define  NET_TCP_CONN_STATE_SYNC_RXD_PASSIVE              31u #define  NET_TCP_CONN_STATE_SYNC_RXD_ACTIVE               32u #define  NET_TCP_CONN_STATE_SYNC_TXD                      35u #define  NET_TCP_CONN_STATE_CONN                          40u #define  NET_TCP_CONN_STATE_FIN_WAIT_1                    50u #define  NET_TCP_CONN_STATE_FIN_WAIT_2                    51u #define  NET_TCP_CONN_STATE_CLOSING                       52u #define  NET_TCP_CONN_STATE_TIME_WAIT                     53u #define  NET_TCP_CONN_STATE_CLOSE_WAIT                    55u #define  NET_TCP_CONN_STATE_LAST_ACK                      56u #define  NET_TCP_CONN_STATE_CLOSING_DATA_AVAIL            59u   /* See Note #2a.                                        */ /* ********************************************************************************************************* *                                     TCP CONNECTION QUEUE STATES ********************************************************************************************************* */ #define  NET_TCP_RX_Q_STATE_NONE                           0u #define  NET_TCP_RX_Q_STATE_CLOSED                       100u #define  NET_TCP_RX_Q_STATE_CLOSING                      101u #define  NET_TCP_RX_Q_STATE_SYNC                         110u #define  NET_TCP_RX_Q_STATE_CONN                         111u #define  NET_TCP_TX_Q_STATE_NONE                           0u #define  NET_TCP_TX_Q_STATE_CLOSED                       200u #define  NET_TCP_TX_Q_STATE_CLOSING                      201u #define  NET_TCP_TX_Q_STATE_SYNC                         210u #define  NET_TCP_TX_Q_STATE_CONN                         211u #define  NET_TCP_TX_Q_STATE_SUSPEND                      215u #define  NET_TCP_TX_Q_STATE_CLOSED_SUSPEND               220u #define  NET_TCP_TX_Q_STATE_CLOSING_SUSPEND              221u /*$PAGE*/ /* ********************************************************************************************************* *                                     TCP CONNECTION CODE DEFINES **************

    標(biāo)簽: tcp uCOS-II

    上傳時間: 2015-11-22

    上傳用戶:the same kong

  • VIP專區(qū)-單片機源代碼精選合集系列(29)

    eeworm.com VIP專區(qū) 單片機源碼系列 29資源包含以下內(nèi)容:1. 單片機開發(fā)使用工具.zip2. 低成本8位單片機控制的光電尋跡智能車.zip3. nios ii 入門手冊中文版.zip4. 絕密單片機筆記.pdf5. 漢字轉(zhuǎn)unicode帶16進(jìn)制.exe6. 基于單片機的智能小車程序.zip7. 8路串口繼電器.zip8. Kinetis_K60開源底層驅(qū)動開發(fā)包(20120328).rar9. 34個單片機實例(包括框圖和程序).doc10. 單片機功能簡圖.pdf11. 按鍵漫談.pdf12. 暑期單片機訓(xùn)練題集.pdf13. 基于單片機的數(shù)字時鐘.doc14. 電子工程師知識.doc15. DIY單片LCD投影機.doc16. 歐姆龍plc編程軟件使用手冊.pdf17. Keil_uVision4安裝破解方法與漢化.doc18. 單片機C語言應(yīng)用.pdf19. 單片機開發(fā)板原理圖.pdf20. McuTools 工具集成 非常實用.zip21. Keil_uvision教程.doc22. STC單片機資料.pdf23. CAD技巧120個絕對實用.doc24. 51單片機控制的步進(jìn)電機.doc25. 譚浩強C語言程序設(shè)計.pdf26. 三天入門Cortex-M4.pdf27. 數(shù)碼管顯示—ADC0832電壓表PROTUES仿真.rar28. 避障小車.doc29. 算法設(shè)計與分析.zip30. 王爽《匯編語言》.pdf31. 算法大全.zip32. K60文檔整合.rar33. AT89C52中文手冊.pdf34. 更方便的定時器計算.exe35. AT89S52消防智能電動車設(shè)計.rar36. 搖搖棒資料.rar37. 單片機的開發(fā)軟件STC-ISP-V4.83-NOT-SETUP-CHINESE.EXE38. keil與Proteus使用.pdf39. C8051F000_03_IcpdfCom.pdf40. C8051F005_IcpdfCom.pdf41. AT89S52單片機程序50例(00-50).rar42. STCMCU全系列頭文件.zip43. 全套pads2007視頻教程.rar44. 33個畢業(yè)設(shè)計——單片機類.rar45. 最全版ds18b20簡體中文資料.rar46. 【仿真】PROTEUS中Max7221數(shù)碼管動態(tài)顯示.rar47. USART串口編程.pdf48. MCS-51單片機原理及實用技術(shù).rar49. lcd1602字符手冊.pdf50. McuTools工具集成.zip51. 單片機源程序精華包.rar52. 單片機高級語言C51應(yīng)用程序設(shè)計.pdf53. STM32中文參考手冊.pdf54. 16-16點陣字模生成軟件 綠色版.rar55. 利用Protel99SE設(shè)計PCB基礎(chǔ)教程.rar56. NUC122 Technical Reference Manual SC V1.06.pdf57. Keil_C51幾種精確延時方法.doc58. MedWin v2.04單片機集成開發(fā)環(huán)境(中文版).rar59. ARM Cortex-M0原理與應(yīng)用實踐V1.5.pdf60. Proteus單片機仿真實例大全.rar61. 單片機wifi方案.pdf62. 邊學(xué)邊用單片機.rar63. 單片機常用模塊電路大全.zip64. 偉福E2000仿真機軟件下載.zip65. adc8009應(yīng)用實例--基于51單片機的PWM直流電機調(diào)速proteus仿真.zip66. 《51單片機C語言實例fenxi》寫的還可以.pdf67. MicroChip Pic電子發(fā)燒友_開發(fā)工具下載.zip68. 8X8點陣取模軟件.zip69. STC89CXX_GUIDE-CHINESE.pdf70. 芯源的單片機教程.pdf71. CodeVisionAVR破解版.rar72. lcd1602顯示.rar73. in4007和in4148區(qū)別.pdf74. MSP430單片機實時多任務(wù)操作系統(tǒng)c源代碼.zip75. Keil C51 V6.23 中文漢化程序_keil c51軟件下載.zip76. 單片機反編譯器 V1.2下載.zip77. Keil Arm7 設(shè)計軟件_V1.0測試版下載.zip78. PZISP自動下載軟件.exe79. Lope 51 仿真軟件 Ver 3.26 中文完整版_下載.rar80. NE555手冊.pdf81. Keil C51 V6.21的安裝程序_Keil C51下載.zip82. HC6800說明書.pdf83. 51的上位機程序.docx84. Keil C51 7.01 DEMO版_(有2k代碼大小限制)下載.zip85. PIC單片機的C語言使用.doc86. keil7.06完全破解版_免費下載.rar87. PIC單片機原理圖.pdf88. Keil C51 V7.0中文漢化程序_免費下載.zip89. KEIL7.0完全破解版、中文補丁_keil下載.zip90. KEIL中文完全破解版_免費下載.rar91. protues仿真keil程序 初學(xué)者的福音.zip92. 可移植到51單片機_T9拼音輸入法.wps93. RTX51多任務(wù)操作系統(tǒng)中文使用指南.pdf94. 串口調(diào)試助手大全免費下載.rar95. 80C51單片機的結(jié)構(gòu).ppt96. 16.16LED點陣字庫軟件.rar97. 超聲波測距離.pdf98. 怎樣才能學(xué)好單片機.pdf99. 計算51單片機波特率程序_免費下載.zip100. 單片機初學(xué)習(xí).pdf

    標(biāo)簽: 平板 顯示技術(shù)

    上傳時間: 2013-07-22

    上傳用戶:eeworm

  • VIP專區(qū)-單片機源代碼精選合集系列(52)

    eeworm.com VIP專區(qū) 單片機源碼系列 51資源包含以下內(nèi)容:1. Atmel 90系列AVR單片機燒錄器.zip2. 可在線系統(tǒng)編程的智能鍵盤和數(shù)碼管顯示系統(tǒng).pdf3. 調(diào)Q Nd∶YAG環(huán)形腔外腔倍頻技術(shù)研究.pdf4. 基于C8051F930的管道溫度壓力遠(yuǎn)程監(jiān)測系統(tǒng).pdf5. PCF8578 LCD圖形點陣液晶驅(qū)動器芯片簡介及封裝庫.zip6. 單片機控制的半導(dǎo)體激光器穩(wěn)光強器的研究.pdf7. PCF8563 低價時鐘芯片數(shù)據(jù)手冊及封裝庫.zip8. MAX7456在可視倒車?yán)走_(dá)中的應(yīng)用.pdf9. 基于AVR單片機的船舶氣象儀測試系統(tǒng)的設(shè)計.pdf10. PCF8562 低復(fù)用率的通用LCD驅(qū)動器數(shù)據(jù)手冊及封裝庫.zip11. 基于IC卡的新型供暖計費系統(tǒng)設(shè)計.pdf12. 基于C8051F340控制的TD直放站控制方案設(shè)計.pdf13. 基于單片機AT89C51的MP3播放系統(tǒng)的設(shè)計方案.pdf14. PCF2116系列LCD驅(qū)動器芯片簡介及封裝庫.zip15. PIC單片機在汽車電動車窗控制器中的應(yīng)用.pdf16. CAT9555 I2C IO擴展芯片產(chǎn)品數(shù)據(jù)手冊及封裝庫.zip17. 基于MSP430單片機和DS18B20的數(shù)字溫度計.pdf18. 基于OMAP1510的mp3播放器設(shè)計.rar19. CAT9554 I2C總線擴展器產(chǎn)品數(shù)據(jù)手冊.pdf20. 基于雙ATmega128的安檢力學(xué)試驗機設(shè)計.pdf21. 單片機間雙工串行通訊.rar22. CAT93C46 器件數(shù)據(jù)手冊.pdf23. 基于自編程功能的MCU Bootloader設(shè)計.pdf24. DP-51PROD單片機教學(xué)實驗儀簡介.pdf25. 激光掃描車身坐標(biāo)測量數(shù)據(jù)采集系統(tǒng)的設(shè)計.pdf26. 基于MSP430的自控式骨矯形器的設(shè)計與實現(xiàn).pdf27. 基于MSP430單片機的電子汽車限速器的研究.pdf28. 基于BF561的智能視頻監(jiān)控儀的設(shè)計.pdf29. 基于555定時器的雙音門鈴電路設(shè)計.doc30. TKScope完美支持AVR內(nèi)核的仿真.pdf31. AT89C51與ISD4003組成的語音報價系統(tǒng).pdf32. EDS-1210 嵌入式以太網(wǎng)交換機模塊數(shù)據(jù)手冊.pdf33. PIC燒錄器.doc34. 刪繁就簡-單片機入門到精通.pdf35. 基于AT89S51系列單片機實時語音播報的超聲波測距儀設(shè)計.pdf36. 基于AT89S52 的水溫控制系統(tǒng)的設(shè)計.pdf37. 基于單片機和串行EEPROM的智能密碼鎖的設(shè)計與制作.doc38. 單片機模糊控制在電加熱爐溫度控制系統(tǒng)中的應(yīng)用.pdf39. 基于單片機的語音電子鐘設(shè)計.doc40. 單片機內(nèi)部密碼破解的常用方法.doc41. 基于單片機的信號產(chǎn)生電路的設(shè)計.doc42. 在單片機上實現(xiàn)USB移動存儲.doc43. 基于單片機的機械手控制系統(tǒng)研究.pdf44. 基于單片機SPCE061A的多功能數(shù)字鐘設(shè)計.doc45. 基于51單片機電子密碼鎖的Proteus仿真設(shè)計.pdf46. 單片機人機交互系統(tǒng)的C51編程.pdf47. Keil和Proteus在單片機實驗教學(xué)中的應(yīng)用.pdf48. 基于ATMEGA128單片機的節(jié)水灌溉系統(tǒng)設(shè)計.pdf49. 超齊全單片機工具集.rar50. 基于msp430單片機的便攜式數(shù)字傾角儀的研制.rar51. keilA51原版教程.pdf52. STM32F10x開發(fā)調(diào)試工具一覽.pdf53. X波段雙頻高功率返波振蕩器的數(shù)值研究.pdf54. AVR單片機實用程序設(shè)計.doc55. STM32F10xxx+調(diào)試應(yīng)用示例.rar56. 基于單片機的多I/O節(jié)點開發(fā)設(shè)計.pdf57. 74LS138譯碼器應(yīng)用--基于8051+Proteus仿真.rar58. STM32F10xxx+USART應(yīng)用實例.rar59. 深入淺出MFC簡體中文版.doc60. 可以調(diào)控的走馬燈(基于8051+Proteus仿真).rar61. STM32F10xxx+TIM應(yīng)用實例.rar62. PIC單片機中檔資料說明.pdf63. STM32 PCB封裝庫.rar64. STM32F10xxx+TIM1+應(yīng)用實例.rar65. 用Verilog實現(xiàn)8255芯片功能.rar66. 單片機軟件系統(tǒng)設(shè)計教程.pdf67. STM32F10xxx+SPI+應(yīng)用示例.rar68. C8051F單片機應(yīng)用解析.rar69. STM32F10xxx+GPIO應(yīng)用示例.rar70. 精通VerilogHDL:IC設(shè)計核心技術(shù)實例詳解.rar71. 基于STC89C52單片機控制的超聲波汽車防撞系統(tǒng).pdf72. STM32F10xxx+DMA+控制器應(yīng)用實例.rar73. STM32F10xxx+IIC+應(yīng)用實例.rar74. STM32F10xxx+CAN應(yīng)用實例.rar75. 基于STC89C51的鼠標(biāo)改裝PPT遙控.zip76. STM32F10xxx+ADC應(yīng)用實例.rar77. 雙MSP430單片機結(jié)構(gòu)數(shù)字渦街流量計.doc78. STC89C51定時器2的應(yīng)用.rar79. 基于AT89C51單片機控制的遙控器的設(shè)計.pdf80. 單片機實現(xiàn)的嵌入式因特網(wǎng)終端設(shè)計.doc81. 單片機作息時間控制.doc82. 基于VB與單片機的溫度測控系統(tǒng)設(shè)計.doc83. STC單片機程序下載器設(shè)計.pdf84. 基于MSP430單片機的SD卡讀寫.pdf85. 基于PIC16F877A的車內(nèi)有害氣體檢測控制系統(tǒng)設(shè)計.pdf86. F2812的片內(nèi)資源、存儲器映射以及CMD文件的編寫.pdf87. 基于PIC16F877A的方波信號發(fā)生器電路設(shè)計.pdf88. 單片脈沖計數(shù).doc89. 單片微機的定時器計數(shù)器原理及應(yīng)用.ppt90. 基于ISP1581的USB 數(shù)據(jù)采集系統(tǒng)的實現(xiàn).pdf91. 基于單片機的渦輪流量計顯示儀表的設(shè)計.pdf92. STC單片機開發(fā)板操作手冊.doc93. 基于TMS320F2812的智能數(shù)字調(diào)節(jié)器.pdf94. 基于PN532的接觸式和非接觸式讀卡器設(shè)計.pdf95. 基于C8051F410的光電式引張線儀設(shè)計.pdf96. 利用單片機控制交通燈與倒記時顯示.pdf97. ISD4004語音芯片的內(nèi)部存儲信息管理.pdf98. 具有模擬信號處理能力單片機簡評--單片機選擇和使用(簡介篇).pdf99. 基于AVR單片機的自動對靶噴霧控制系統(tǒng)設(shè)計.pdf100. ds18b20程序.doc

    標(biāo)簽: 數(shù)字電子技術(shù) 電子教案

    上傳時間: 2013-04-15

    上傳用戶:eeworm

主站蜘蛛池模板: 铜川市| 丰原市| 安溪县| 金湖县| 黎川县| 柯坪县| 鹤峰县| 尼玛县| 达孜县| 岗巴县| 峡江县| 洪泽县| 鹤壁市| 宁化县| 太湖县| 南木林县| 泌阳县| 门源| 句容市| 静乐县| 丰县| 米泉市| 北安市| 日照市| 德庆县| 来宾市| 肥乡县| 徐水县| 泰安市| 康保县| 泾源县| 邛崃市| 云龙县| 宁阳县| 新源县| 望城县| 洪雅县| 久治县| 赣榆县| 日照市| 宝清县|