新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM單片機的水表智能抄表系統設計

        基于ARM單片機的水表智能抄表系統設計

        作者: 時間:2013-02-19 來源:網絡 收藏

          2.1 與SDRAM HY57V161610D的連接

          在抄表手機中運行的是一個自己編寫的小型操作系統。它擁有自己的文件系統,能夠解釋并運行上位機所編寫的Foxpro程序。由于牽涉到對數據庫的操作,系統所需的內存較大。本系統選擇了HYUNDAI公司的SDRAM-HY57V161610D.它的數據寬度為16位,由兩個BANK組成,共2MB的存儲容量。由于的BANK6、7支持SDRAM,因此它與HY57V161610D的連接相當簡單,不需要軟件驅動程序,只要設置兩個寄存器即可。在BWSCON寄存器中設置BANK6的數據寬度為16位,在BANKCON6寄存器中設置MT=0X3,Trcd=0X0,SCAN=0X0.

          2.2 與FLASH KM29U128T的連接

          抄表手機中保存抄表所得的數據庫。當用戶較多時,數據庫會占用較大的存儲空間。特別是當進行一個月用水報表分析時,匯集器每隔一小時(或者更短)就存儲一次數據,抄表手機必須讀取這一個月的全部數據。此時的數據庫是相當龐大的。因此選擇了SAMSUNG公司的FLASH-KM29U128T,該FLASH存儲容量達16MB,足夠數據庫存儲使用。它的不足之處是:它不是線性尋址的,存儲速度較慢;讀寫比較麻煩,必須按頁為單位(512字節)進行讀寫,每次寫之前必須對該頁所在的BLOCK進行一次擦除;而且它并不保證每個BLOCK(32PAGE為一個BLOCK)都是好的,壞率為1%,但它保證前兩個BLOCK肯定是好的。

          利用前兩個BLOCK建立一個FAT表,用邏輯的BLOCK號對應物理上的BLOCK,每次讀寫都對邏輯上的BLOCK進行操作。在每次寫操作時都進行一次讀操作,與所寫的內容進行比較。如果發現有所不同,就再寫一次;若再錯就認為該BLOCK壞了,做好標記并找后面好的BLOCK來代替,這樣能保證邏輯上的BLOCK都是好的。

          2.3 3C44B0X與LCD TCM-A0902的連接

          3C44B0X自帶LCD控制模塊,但它并不支持所有點陣形式的LCD.為了充分利用該芯片,可以選它所支持的LCD.但如果一定要用其他的LCD,這也沒關系,因為對LCD的操作就象對其他的存儲器操作一樣簡單。

          本系統選用的是EPSON公司的TCM-A0902、單色、320×200.直接使用3C44B0X的BANK4來控制。由于3C44B0X是高速處理器,因此在對LCD操作時加入了軟延時。

          LCD顯示滿屏的程序如下:

          #define LCDCMD (*(volatile unsigned char *) 0x8000000)

          #define LCDDATA (*(volatile unsigned char *) 0x8000001)

          void Lcd_Displayfull(void ) //顯示滿屏

          { int j;

          U8 i,k;

          LCDCMD=PASET; //頁面設置,page0

          LCDDATA=0x0;

          LCDCMD=CASET; //列設置, column0

          LCDDATA=0x0;

          LCDDATA=0x0;

          for(i=0;i25;i++) //從第0頁到24頁

          { for(j=0;j320;j++) //從第0列到319列

          { LCDCMD=MWRITE; //寫命令

          LCDDATA =lcd_disp[i][j]; //寫數據

          for(k=0;k3;k++); //軟延時

          }

          LCDCMD = RETURN; //換頁

          }

          }

          2.4 3C44B0X與USB9603的連接

          由于抄表手機抄表所得的數據是以數據庫的形式傳送給上位機,當數據庫較大時不可能通過串口傳送。USB通訊時,最高理論傳輸速率可達到12MB/s,因此可以通過USB來傳送數據庫。由于3C44B0X不帶USB接口,因此必須外擴一個USB接口。

          本系統選用NATIONAL公司的USBN9603.它是9602的改進型,對9602存在的一些缺陷作了改正,并減少了部分寄存器,使得對USB通訊的編程相對簡單了許多。由于牽涉到對FLASH的操作,USB的通訊速率并沒有想象的那樣高。下傳數據庫時,由于要對FLASH進行寫操作,USB的傳輸速率只有200KB/s;但是上傳時只對FLASH進行讀操作,USB的傳輸速率就明顯快多了,可以達到800KB/s.因此,選擇何種FLASH,如何對FLASH進行編程,對USB的傳輸速率有較大的影響。

          2.5 抄表手機其他部分

          抄表手機還包括鍵盤輸入、串口通訊、電池檢測等部分。這幾部分比較簡單。比如鍵盤輸入部分:如果想用鍵盤中斷,只要用外部中斷EINT4、5、6、7,因為這四個中斷源的中斷入口地址是同一個,再加上幾個普通的I/O口就可以組成一個中斷鍵盤。如果想改成掃描鍵盤,那也很簡單,只要把EINT4、5、6、7設置成I/O口功能就可以了,硬件上不需要作任何改動。串口通訊也很簡單,只要在S3C44B0X的UART口上外接一片MAX232電平轉換芯片就可以實現標準的RS232通訊功能。電池檢測部分只要把來自電池部分的電壓連接到某個A/D口就可以了。如果所用的電池電壓高于S3C44B0X的工作電壓(3.3V),通過電阻分壓后再接到A/D口。

          由于FLASH KM29U128T不是線性尋址的,不能作為系統啟動之用。因此,需要一片線性尋址的EEPROM(如29EE010)作為系統初始化使用。它的主要任務是初始化系統,把存于FLASH中的操作系統調入SDRAM中運行。因此,EEPROM的容量不需很大。硬件連接時注意EEPROM的片選信號應接S3C44B0X的BANK0(NGCS0)。

          自來是個比較大的系統,本文只涉及到它的核心部分,而且是硬件部分。電力測量設備與電能計量裝置不僅關系到結算的準確性,涉及各利益主體的經濟效益,而且對系統的運行具有參考和指導意義。運營管理人員對采集的電網運行參數、電量等數據進行分析、評價,可以及時采取措施,調整發供配電方式,不斷提高電網運行的經濟性。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 木里| 潼关县| 信宜市| 盐亭县| 霞浦县| 土默特左旗| 昌邑市| 庆阳市| 应城市| 邻水| 香河县| 开化县| 柳州市| 册亨县| 双鸭山市| 汉中市| 察隅县| 定边县| 金阳县| 彝良县| 类乌齐县| 梁河县| 峡江县| 和龙市| 任丘市| 儋州市| 漳州市| 阿克陶县| 洛南县| 临安市| 澄城县| 莆田市| 左贡县| 沁水县| 宁南县| 富平县| 宜君县| 彩票| 扎兰屯市| 郑州市| 邹平县|