【正文】
員等使用庫存產(chǎn)品查詢客戶機查詢庫存產(chǎn)品數(shù)量等信息。圖 硬件連接原理圖 系統(tǒng)特點本設(shè)計在計算機網(wǎng)絡(luò),數(shù)據(jù)庫和先進的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個具有開放體系結(jié)構(gòu)的、易擴充的、易維護的、具有良好人機界面的倉庫管理系統(tǒng),實現(xiàn)產(chǎn)品信息管理,出貨入貨管理,遠程數(shù)據(jù)庫同步,數(shù)據(jù)安全備份,使用者權(quán)限管理等功能。(2)數(shù)據(jù)的安全性本系統(tǒng)為企業(yè)倉庫管理部門設(shè)計,涉及到各種重要信息,因此系統(tǒng)設(shè)有安全管理機制,對不同的操作人員可以設(shè)置不同的管理權(quán)限,對不同的瀏覽者可以設(shè)置開放不同的數(shù)據(jù)表。Xscale是ARM體系結(jié)構(gòu)的一種內(nèi)核,基于ARM v5TE,由Intel公司開發(fā),在架構(gòu)擴展的基礎(chǔ)上同時也保留了對于以往產(chǎn)品的向下兼容,相比于ARM處理器,XScale功耗更低,系統(tǒng)伸縮性更好,同時核心頻率也得到提高,達到了400Mhz甚至更高。應(yīng)此在本設(shè)計中選擇使用ARM9微處理器。 命名空間實現(xiàn)在智能設(shè)備上進行SQL Server Mobile 數(shù)據(jù)庫的創(chuàng)建與管理。SQL Server Mobile 客戶端代理(SQL Server Mobile Client Agent)通過復(fù)制對象、遠程數(shù)據(jù)訪問對象和引擎對象來通過應(yīng)用程序編程控制與Microsoft SQL Server 連接。圖 SQL Server Mobile 與SQL Server 進行通信原理圖 服務(wù)器環(huán)境分析服務(wù)器環(huán)境由 SQL Server Mobile 服務(wù)器代理、Microsoft Internet 信息服務(wù) (IIS) 和 SQL Server 組成。 SQL Server? 2000是企業(yè)級解決方案中的數(shù)據(jù)庫系統(tǒng),在SQL Server Mobile中它提供對客戶機上的存儲,備份和管理等。SQL Server Mobile 通常用作完整 Microsoft .NET Compact Framework 應(yīng)用程序部署的一部分,但也可以單獨安裝在智能設(shè)備上。圖 SQL Server Mobile 體系結(jié)構(gòu) 利用Internet信息服務(wù)建立連接Internet信息服務(wù)器(IIS) 提供了集成 Web 服務(wù)器功能。IIS 包括許多新功能,它們旨在幫助企業(yè)、IT 專業(yè)人士和 Web 管理員實現(xiàn)其網(wǎng)站(他們可能擁有位于單個 IIS 服務(wù)器或多個服務(wù)器上的數(shù)千個網(wǎng)站)在性能、可靠性、可伸縮性和安全性方面的目標。Microsoft174。SQL Server 2000 關(guān)系數(shù)據(jù)庫引擎動態(tài)調(diào)節(jié)自身以獲取或釋放適當(dāng)?shù)挠嬎銠C資源,以支持在任何特定時間訪問 SQL Server 2000 實例時不斷變化的用戶負荷之需。 SQL Server Mobile 客戶端代理SQL Server Mobile 客戶端代理是在運行Windows CE備上與數(shù)據(jù)庫服務(wù)器進行連接的主要組件。數(shù)據(jù)源可能象文本文件一樣簡單,也可能象一堆異構(gòu)數(shù)據(jù)庫那樣復(fù)雜,或者是尚未定型的某種數(shù)據(jù)。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的連接。 CE .NET環(huán)境客戶端環(huán)境的操作系統(tǒng)選擇Microsoft174。Windows CE .NET CE先前版本的強大功能進行了進一步的擴充和豐富,它提供了:l 對安全和可伸縮網(wǎng)絡(luò)的支持l 得到增強的實時處理能力l 更為優(yōu)秀的性能表現(xiàn)l 更為豐富的多媒體和Web瀏覽功能l 與個人計算機、服務(wù)器、Web服務(wù)以及其它設(shè)備更為出色的互操作性 軟件開發(fā)環(huán)境分析本設(shè)計總客戶機軟件的開發(fā)環(huán)境是一臺安裝Microsoft Visual Studio 2005的通用計算機,通過Microsoft Visual Studio 2005,可以使用Visual Basic 2005來開發(fā)客戶機的應(yīng)用程序。 開發(fā)環(huán)境的詳細框架如圖 。與微軟的其他的操作系統(tǒng)一樣安裝過程采用圖像化、向?qū)Щ僮鳎@個過程比較簡單所以不在這里描述。必須共享此文件夾,使其可以通過 UNC 路徑訪問;還必須分配適當(dāng)?shù)?NTFS 文件系統(tǒng)權(quán)限。單擊“開始”→“程序”→“Microsoft SQL Server 2005 Mobile Edition”→“配置Web同步向?qū)А保涂梢源蜷_Web 同步向?qū)?,如圖 。新建SQL Server注冊如圖 。MagicARM2410教學(xué)實驗開發(fā)平臺采用ARM920T內(nèi)核的S3C2410A微處理器,擴展有充足的存儲資源(SDRAM、NAND Flash、NOR Flash和E2PROM等),具有10/100Mbps以太網(wǎng)接口、USB HOST接口、USB Device接口、CAN接口、PCMCIA存儲卡接口、IDE硬盤接口、CF卡接口、SD卡接口、IrDA接口、IIS數(shù)字音頻接口,8英寸640480真彩TFT液晶屏(帶觸摸屏),可使用JTAG仿真調(diào)試。系統(tǒng)中使用到的硬件電路分為5個主要模塊,它們是核心板電路,以太網(wǎng)接口電路,JTAG調(diào)試接口電路,串口模塊和電源模塊。串口模塊打印調(diào)試信息。圖 系統(tǒng)硬件結(jié)構(gòu)示意圖 核心控制電路核心板電路是能運行程序的最小系統(tǒng)電路。S3C2410X芯片結(jié)構(gòu)圖如圖 。 存儲器電路 NOR Flash存儲器核心板上擴展了1片存儲容量為2MB的NOR Flash(SST39VF1601),為了使SST39VF1601能夠引導(dǎo)和下載系統(tǒng),將其分配在Bank0存儲塊空間,使用S3C2410的nGCS0片選線,基地址為0x00000000。電路中使用兩個電阻進行選擇,如虛線框內(nèi)電路。SDRAM的存儲單元可以理解為一個電容,總是傾向于放電,為避免數(shù)據(jù)丟失,必須定時刷新。SDRAM使用S3C2410A的nGCS6片選線,SDRAM的基地址為0x30000000,核心板使用兩片HY57V561620組成32位總線寬度,即每進行一次讀寫可以操作4字節(jié)數(shù)據(jù),對于S3C2410A來說相應(yīng)于字對齊,操作地址的最小變化值為0x00000004。如果SDRAM內(nèi)存共有64MB也就需要26(226=64M)根地址線來尋址,所以BA0、BA1應(yīng)連接S3C2410A的ADDR2ADDR25引腳。圖 SDRAM存儲器電路 NAND Flash存儲器NAND Flash具有良好的性價比和系統(tǒng)接口,且S3C2410支持NAND ROM啟動方式,所以核心板選用了三星公司的NAND Flash:K9F1208U0BPCB0。核心板使用K9F1208U0BPCB0擴展了64M的NAND Flash存儲器,K9F1208U0BPCB0的I/O0~I/O7直接與S3C2410的DATA0~DATA7相連,通過數(shù)據(jù)總線發(fā)送地址、命令和數(shù)據(jù)。圖 核心板時鐘電路 復(fù)位電路核心板的復(fù)位電路采用內(nèi)置E2PROM存儲器的專用電源監(jiān)控復(fù)位芯片CAT1025JI30,提高了系統(tǒng)的可靠性。使用時,其輸出端需要一個至少10uF的鉭電容來改善瞬態(tài)響應(yīng)和穩(wěn)定性。而PHY在很大程度上是一種模擬器件,負責(zé)將數(shù)據(jù)轉(zhuǎn)換成在特定的媒體上(常用雙絞線)傳輸所需的信號電平。MagicARM2410實驗箱主板上帶有一路10/100M以太網(wǎng)接口電路,電路原理圖如圖 。DM9000E的AEN是芯片選通引腳,與S3C2410的片選線nGCS3相連,該引腳為低時才能進行讀寫操作。數(shù)據(jù)端口和地址端口的地址由下式?jīng)Q定:DM9000地址端口=片選地址+0x300H+0x00DM9000數(shù)據(jù)端口=片選地址+0x300H+0x04由上式可以得到DM9000的地址端口為0x18000300,數(shù)據(jù)端口為0x18000304。圖 以太網(wǎng)接口電路 JTAG調(diào)試接口電路在現(xiàn)在系統(tǒng)中越來越強調(diào)可策性,調(diào)試、測試接口的設(shè)計也越來越受到重視。系統(tǒng)電源電路原理圖如圖 。權(quán)限認證模塊是系統(tǒng)安全的保證,訪問本地數(shù)據(jù)時,管理員需要提供創(chuàng)建本地數(shù)據(jù)庫時使用的賬號和密碼;訪問遠程數(shù)據(jù)庫時,管理員不僅要提本地數(shù)據(jù)庫的供賬號和密碼,而且遠程數(shù)據(jù)庫服務(wù)器的登錄名和密碼,SQL服務(wù)器的用戶名和密碼。串口設(shè)置模塊主要實現(xiàn)對串口參數(shù)的設(shè)置,例如波特率,串口號,效驗位,停止位和奇偶校驗。圖 管理員客戶機程序流程圖 打印機通信模塊設(shè)計串口通信模塊的設(shè)計包括硬件電路設(shè)計和軟件代碼設(shè)計,下面將進行詳細敘述。RS 是英文“推薦標準”的縮寫,232 為標識號,C 表示修改次數(shù)。UART0通過SP3232芯片跟S3C2410微處理器的串行口引腳連接,其電路如圖 SP3232串行接口電路所示。圖 二十五針的串行接口的外形二十五針的串行接口的引腳功能很豐富,但實際應(yīng)用中只需要用到幾根,其功能如圖 。打開串口函數(shù)應(yīng)能夠按照一定的DCB 格式配置串口再打開串口,接收數(shù)據(jù)的函數(shù)應(yīng)在調(diào)用后立刻返回已接收的數(shù)據(jù)供應(yīng)用程序使用。在實際使用串口時,還必須設(shè)置好串口的波特率,奇偶校驗和數(shù)據(jù)位等參數(shù)。程序清單 串口控制類中的打開串口方法int CCeSerial::epcSerialOpen (EPort Port, EBaudrate BaudRate, EDataBits DataBits, EStopBits StopBits, EParity Parity, BOOL bDTRShake, BOOL bRTSShake){ int iErr。 } if( (BaudRate EBaud115200) || (BaudRate EBaud110) ) { __messageDispDebug(_T(波特率參數(shù)錯誤.))。 return (COM_ERR_OPEN)。 /* 清除收/發(fā)緩沖區(qū) */ return (COM_OK)。 /* 等待線程退出 */ CloseHandle(hRcvThread)。 PurgeComm(hCOM, PURGE_TXCLEAR | PURGE_RXCLEAR)。 } return (FALSE)。 DWORD dwErrorFlags。 } ClearCommError(hCOM, amp。dwActLen, NULL)。 COMMTIMEOUTS ctoTimeOut。 } if (hCOM == INVALID_HANDLE_VALUE) { __messageDispDebug(_T(串口未打開!))。 } GetCommTimeouts(hCOM, amp。 = dwOutTime。 pfunRcvOnComRcv = pfunOnComRcv。dwThreadID)。 } return (TRUE)。程序清單 聲明調(diào)用動態(tài)鏈接庫‘聲明調(diào)用打開串口函數(shù)Public Declare Function epcSerialOpen1 Lib epcSerial Alias epcSerialOpen1 (ByVal ucPort As Byte, ByVal ucBaudRate As Byte, ByVal ucDataBit As Byte, ByVal ucStopBit As Byte, ByVal ucParity As Byte) As Integer‘聲明調(diào)用關(guān)閉串口函數(shù)Public Declare Function epcSerialClose Lib epcSerial Alias epcSerialClose (ByVal ucPort As Byte) As Boolean‘聲明調(diào)用發(fā)送數(shù)據(jù)函數(shù)Public Declare Function epcSerialSendData Lib epcSerial Alias epcSerialSendData (ByVal ucPort As Byte, ByVal pucSendBuf As Byte(), ByVal dwLength As UInteger) As Boolean‘聲明調(diào)用接收數(shù)據(jù)函數(shù)Public Declare Function epcSerialClose Lib epcSerial Alias epcSerialRcvData (ByVal ucPort As Byte, ByVal pucRcvBuf As Byte(), ByVal dwLength As Integer, ByVal dwOutTime As Integer, ByVal bClrComBuf As Boolean) As Integer 打印機驅(qū)動模塊本設(shè)計中使用的打印機屬于微型的串口打印機,這種打印機的優(yōu)點是不需要編寫特定的驅(qū)動程序,打印機內(nèi)部自帶了控制器,用戶只需要通過目標系統(tǒng)的標準RS232接口與打印機連接。 創(chuàng)建和組裝本地數(shù)據(jù)庫SQL Server Mobile數(shù)據(jù)庫引擎 Server Mobile 引擎對象。 。在打開 Connection 對象之前,必須定義有關(guān)數(shù)據(jù)源和連接類型的某些信息。連接數(shù)據(jù)庫時首先創(chuàng)建一個SqlCeConnection對象然后再調(diào)用該對象的Open()方法,其實現(xiàn)如程序清單 。 Password = amp??墒褂?Command 對象向提供者請求任何類型的操作,條件是提供者能夠正確解釋命令字符串。表 :表 四種執(zhí)行SQL語句的方式項說明ExecuteReader執(zhí)行返回行的命令。一般情況下,對于不需要返回記錄的SQL語句都應(yīng)該使用ExecuteNonQuery方法,在本設(shè)計中刪除記錄,添加記錄,修改記錄都使用SqlCeCommand 的ExecuteNonQuery方法。 strDataBasePath amp。所以我們可以調(diào)用Execu