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

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

替代傳統(tǒng)按鍵開關(guān)

  • 克服能量采集無線感測器設計挑戰

    無線感測器已變得越來越普及,短期內其開發和部署數量將急遽增加。而無線通訊技術的突飛猛進,也使得智慧型網路中的無線感測器能夠緊密互連。此外,系統單晶片(SoC)的密度不斷提高,讓各式各樣的多功能、小尺寸無線感測器系統相繼問市。儘管如此,工程師仍面臨一個重大的挑戰:即電源消耗。

    標簽: 能量采集 無線感測器

    上傳時間: 2013-10-30

    上傳用戶:wojiaohs

  • LINUX系統分析與高級編程技術

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

    標簽: LINUX 系統分析 高級編程

    上傳時間: 2013-11-10

    上傳用戶:changeboy

  • 甚低頻T形面型天線電氣性能分析

     運用三維全波電磁仿真軟件對甚低頻T形面型天線進行電磁建模和仿真分析計算,分析了天線的輸入阻抗、有效高度、電容等電氣參數。在建模時考慮了鐵塔及不同頂容線模型的影響,并對有無鐵塔及不同鐵塔類型、以及天線不同形式時天線的輸入阻抗進行對比分析。

    標簽: 低頻 天線 電氣 性能分析

    上傳時間: 2013-10-13

    上傳用戶:LouieWu

  • Arduino學習筆記4_Arduino軟件模擬PWM

    注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言.      2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\   所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。

    標簽: Arduino PWM 軟件模擬

    上傳時間: 2013-10-08

    上傳用戶:dingdingcandy

  • PCB板常見按故障分析

    PCB板常見按故障分析

    標簽: PCB 故障分析

    上傳時間: 2013-10-30

    上傳用戶:1234567890qqq

  • PCB布線原則

    PCB 布線原則連線精簡原則連線要精簡,盡可能短,盡量少拐彎,力求線條簡單明了,特別是在高頻回路中,當然為了達到阻抗匹配而需要進行特殊延長的線就例外了,例如蛇行走線等。安全載流原則銅線的寬度應以自己所能承載的電流為基礎進行設計,銅線的載流能力取決于以下因素:線寬、線厚(銅鉑厚度)、允許溫升等,下表給出了銅導線的寬度和導線面積以及導電電流的關系(軍品標準),可以根據這個基本的關系對導線寬度進行適當的考慮。印制導線最大允許工作電流(導線厚50um,允許溫升10℃)導線寬度(Mil) 導線電流(A) 其中:K 為修正系數,一般覆銅線在內層時取0.024,在外層時取0.048;T 為最大溫升,單位為℃;A 為覆銅線的截面積,單位為mil(不是mm,注意);I 為允許的最大電流,單位是A。電磁抗干擾原則電磁抗干擾原則涉及的知識點比較多,例如銅膜線的拐彎處應為圓角或斜角(因為高頻時直角或者尖角的拐彎會影響電氣性能)雙面板兩面的導線應互相垂直、斜交或者彎曲走線,盡量避免平行走線,減小寄生耦合等。一、 通常一個電子系統中有各種不同的地線,如數字地、邏輯地、系統地、機殼地等,地線的設計原則如下:1、 正確的單點和多點接地在低頻電路中,信號的工作頻率小于1MHZ,它的布線和器件間的電感影響較小,而接地電路形成的環流對干擾影響較大,因而應采用一點接地。當信號工作頻率大于10MHZ 時,如果采用一點接地,其地線的長度不應超過波長的1/20,否則應采用多點接地法。2、 數字地與模擬地分開若線路板上既有邏輯電路又有線性電路,應盡量使它們分開。一般數字電路的抗干擾能力比較強,例如TTL 電路的噪聲容限為0.4~0.6V,CMOS 電路的噪聲容限為電源電壓的0.3~0.45 倍,而模擬電路只要有很小的噪聲就足以使其工作不正常,所以這兩類電路應該分開布局布線。3、 接地線應盡量加粗若接地線用很細的線條,則接地電位會隨電流的變化而變化,使抗噪性能降低。因此應將地線加粗,使它能通過三倍于印制板上的允許電流。如有可能,接地線應在2~3mm 以上。4、 接地線構成閉環路只由數字電路組成的印制板,其接地電路布成環路大多能提高抗噪聲能力。因為環形地線可以減小接地電阻,從而減小接地電位差。二、 配置退藕電容PCB 設計的常規做法之一是在印刷板的各個關鍵部位配置適當的退藕電容,退藕電容的一般配置原則是:􀁺?電電源的輸入端跨½10~100uf的的電解電容器,如果印制電路板的位置允許,采Ó100uf以以上的電解電容器抗干擾效果會更好¡���?原原則上每個集成電路芯片都應布置一¸0.01uf~`0.1uf的的瓷片電容,如遇印制板空隙不夠,可Ã4~8個個芯片布置一¸1~10uf的的鉭電容(最好不用電解電容,電解電容是兩層薄膜卷起來的,這種卷起來的結構在高頻時表現為電感,最好使用鉭電容或聚碳酸醞電容)。���?對對于抗噪能力弱、關斷時電源變化大的器件,ÈRA、¡ROM存存儲器件,應在芯片的電源線和地線之間直接接入退藕電容¡���?電電容引線不能太長,尤其是高頻旁路電容不能有引線¡三¡過過孔設¼在高ËPCB設設計中,看似簡單的過孔也往往會給電路的設計帶來很大的負面效應,為了減小過孔的寄生效應帶來的不利影響,在設計中可以盡量做到£���?從從成本和信號質量兩方面來考慮,選擇合理尺寸的過孔大小。例如¶6- 10層層的內存模¿PCB設設計來說,選Ó10/20mi((鉆¿焊焊盤)的過孔較好,對于一些高密度的小尺寸的板子,也可以嘗試使Ó8/18Mil的的過孔。在目前技術條件下,很難使用更小尺寸的過孔了(當孔的深度超過鉆孔直徑µ6倍倍時,就無法保證孔壁能均勻鍍銅);對于電源或地線的過孔則可以考慮使用較大尺寸,以減小阻抗¡���?使使用較薄µPCB板板有利于減小過孔的兩種寄生參數¡���? PCB板板上的信號走線盡量不換層,即盡量不要使用不必要的過孔¡���?電電源和地的管腳要就近打過孔,過孔和管腳之間的引線越短越好¡���?在在信號換層的過孔附近放置一些接地的過孔,以便為信號提供最近的回路。甚至可以ÔPCB板板上大量放置一些多余的接地過孔¡四¡降降低噪聲與電磁干擾的一些經Ñ?能能用低速芯片就不用高速的,高速芯片用在關鍵地方¡?可可用串一個電阻的方法,降低控制電路上下沿跳變速率¡?盡盡量為繼電器等提供某種形式的阻尼,ÈRC設設置電流阻尼¡?使使用滿足系統要求的最低頻率時鐘¡?時時鐘應盡量靠近到用該時鐘的器件,石英晶體振蕩器的外殼要接地¡?用用地線將時鐘區圈起來,時鐘線盡量短¡?石石英晶體下面以及對噪聲敏感的器件下面不要走線¡?時時鐘、總線、片選信號要遠ÀI/O線線和接插件¡?時時鐘線垂直ÓI/O線線比平行ÓI/O線線干擾小¡? I/O驅驅動電路盡量靠½PCB板板邊,讓其盡快離¿PC。。對進ÈPCB的的信號要加濾波,從高噪聲區來的信號也要加濾波,同時用串終端電阻的辦法,減小信號反射¡? MCU無無用端要接高,或接地,或定義成輸出端,集成電路上該接電源、地的端都要接,不要懸空¡?閑閑置不用的門電路輸入端不要懸空,閑置不用的運放正輸入端接地,負輸入端接輸出端¡?印印制板盡量使Ó45折折線而不Ó90折折線布線,以減小高頻信號對外的發射與耦合¡?印印制板按頻率和電流開關特性分區,噪聲元件與非噪聲元件呀距離再遠一些¡?單單面板和雙面板用單點接電源和單點接地、電源線、地線盡量粗¡?模模擬電壓輸入線、參考電壓端要盡量遠離數字電路信號線,特別是時鐘¡?對¶A/D類類器件,數字部分與模擬部分不要交叉¡?元元件引腳盡量短,去藕電容引腳盡量短¡?關關鍵的線要盡量粗,并在兩邊加上保護地,高速線要短要直¡?對對噪聲敏感的線不要與大電流,高速開關線并行¡?弱弱信號電路,低頻電路周圍不要形成電流環路¡?任任何信號都不要形成環路,如不可避免,讓環路區盡量小¡?每每個集成電路有一個去藕電容。每個電解電容邊上都要加一個小的高頻旁路電容¡?用用大容量的鉭電容或聚酷電容而不用電解電容做電路充放電儲能電容,使用管狀電容時,外殼要接地¡?對對干擾十分敏感的信號線要設置包地,可以有效地抑制串擾¡?信信號在印刷板上傳輸,其延遲時間不應大于所有器件的標稱延遲時間¡環境效應原Ô要注意所應用的環境,例如在一個振動或者其他容易使板子變形的環境中采用過細的銅膜導線很容易起皮拉斷等¡安全工作原Ô要保證安全工作,例如要保證兩線最小間距要承受所加電壓峰值,高壓線應圓滑,不得有尖銳的倒角,否則容易造成板路擊穿等。組裝方便、規范原則走線設計要考慮組裝是否方便,例如印制板上有大面積地線和電源線區時(面積超¹500平平方毫米),應局部開窗口以方便腐蝕等。此外還要考慮組裝規范設計,例如元件的焊接點用焊盤來表示,這些焊盤(包括過孔)均會自動不上阻焊油,但是如用填充塊當表貼焊盤或用線段當金手指插頭,而又不做特別處理,(在阻焊層畫出無阻焊油的區域),阻焊油將掩蓋這些焊盤和金手指,容易造成誤解性錯誤£SMD器器件的引腳與大面積覆銅連接時,要進行熱隔離處理,一般是做一¸Track到到銅箔,以防止受熱不均造成的應力集Ö而導致虛焊£PCB上上如果有¦12或或方Ð12mm以以上的過孔時,必須做一個孔蓋,以防止焊錫流出等。經濟原則遵循該原則要求設計者要對加工,組裝的工藝有足夠的認識和了解,例È5mil的的線做腐蝕要±8mil難難,所以價格要高,過孔越小越貴等熱效應原則在印制板設計時可考慮用以下幾種方法:均勻分布熱負載、給零件裝散熱器,局部或全局強迫風冷。從有利于散熱的角度出發,印制板最好是直立安裝,板與板的距離一般不應小Ó2c,,而且器件在印制板上的排列方式應遵循一定的規則£同一印制板上的器件應盡可能按其發熱量大小及散熱程度分區排列,發熱量小或耐熱性差的器件(如小信號晶體管、小規模集³電路、電解電容等)放在冷卻氣流的最上(入口處),發熱量大或耐熱性好的器件(如功率晶體管、大規模集成電路等)放在冷卻Æ流最下。在水平方向上,大功率器件盡量靠近印刷板的邊沿布置,以便縮短傳熱路徑;在垂直方向上,大功率器件盡量靠近印刷板上方布置£以便減少這些器件在工作時對其他器件溫度的影響。對溫度比較敏感的器件最好安置在溫度最低的區域(如設備的µ部),千萬不要將它放在發熱器件的正上方,多個器件最好是在水平面上交錯布局¡設備內印制板的散熱主要依靠空氣流動,所以在設計時要研究空氣流動的路徑,合理配置器件或印制電路板。采用合理的器件排列方式,可以有效地降低印制電路的溫升。此外通過降額使用,做等溫處理等方法也是熱設計中經常使用的手段¡

    標簽: PCB 布線原則

    上傳時間: 2015-01-02

    上傳用戶:15070202241

  • 基于T-F變換的多點流體溫度測量系統

    針對一般測溫方法在進行流體多點溫度測量時存在系統復雜,準確度和速度難以兼顧的問題,提出了一種基于溫度-頻率(T-F)變換的測量系統。該系統使用PIC18F6722單片機控制MOS管開關陣列,使多個測點的熱敏電阻分別與TLC555構成振蕩電路,將測點的溫度變化轉化為振蕩頻率的變化,使用8253計數芯片對TLC555的輸出信號進行測量并產生中斷,單片機讀取8253計數值反演為測點溫度。實驗表明,測點數目增多不會增加測量系統的復雜程度,通過設置8253的計數初值,可以在不改變硬件的情況下靈活選擇測量的準確度和速度,滿足了流體多點精確快速測溫的需求。同時該系統具備簡潔實用,成本低的優點。

    標簽: T-F 變換 多點 流體

    上傳時間: 2013-10-23

    上傳用戶:assef

  • Arduino學習筆記4_Arduino軟件模擬PWM

    注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言.      2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\   所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。

    標簽: Arduino PWM 軟件模擬

    上傳時間: 2013-10-23

    上傳用戶:mqien

  • 一個可以替代windows ODBC驅動程序管理器的通用ODBC數據庫引擎

    一個可以替代windows ODBC驅動程序管理器的通用ODBC數據庫引擎

    標簽: ODBC windows 驅動程序 管理器

    上傳時間: 2013-12-03

    上傳用戶:semi1981

  • 表達式計算代碼,按優先級計算輸入的表達式,支持括號,階乘號,暫不支持三角函數!

    表達式計算代碼,按優先級計算輸入的表達式,支持括號,階乘號,暫不支持三角函數!

    標簽: 表達式 計算 代碼 三角函數

    上傳時間: 2013-12-21

    上傳用戶:zhaiyanzhong

主站蜘蛛池模板: 竹山县| 扶绥县| 金华市| 高台县| 绵阳市| 揭西县| 陵川县| 伊宁县| 宿迁市| 楚雄市| 元氏县| 托克托县| 江北区| 汶川县| 遂宁市| 德格县| 济阳县| 张家界市| 山东| 凤冈县| 泌阳县| 安新县| 正定县| 光山县| 育儿| 金阳县| 南丰县| 和平区| 兴安县| 江门市| 乌拉特前旗| 南宁市| 共和县| 什邡市| 常熟市| 丰都县| 汝城县| 浦北县| 镇宁| 鄂尔多斯市| 萨嘎县|