ZLIP是一個(gè)專門為51單片機(jī)設(shè)計(jì)的(但不限于51單片機(jī))專門的嵌入式TCP/IP協(xié)議棧。新一代ZLIP增值版V1.0主要特點(diǎn)有:
1. 原創(chuàng)性:ZLIP的所有代碼都由版權(quán)所有者設(shè)計(jì)實(shí)現(xiàn)。與基于開源代碼的軟件相比,它更具有清晰的結(jié)構(gòu)和易于維護(hù)性,卓嵐公司也更具有專業(yè)的技術(shù)能力。
2. 優(yōu)化性:ZLIP專門針對(duì)51單片機(jī)進(jìn)行了優(yōu)化。
(1) ZLIP具有適中的代碼兩和相對(duì)較快的運(yùn)行速度。由于ZLIP一開始就是為51單片機(jī)設(shè)計(jì),所以代碼量和速度一直是設(shè)計(jì)中考慮的重點(diǎn)。LWIP是一個(gè)著名的開源嵌入式TCP/IP,但是它是為16位/32位CPU設(shè)計(jì),相對(duì)于51來(lái)說(shuō)代碼量較大。
(2) ZLIP專門針對(duì)Keil C51編譯器進(jìn)行了優(yōu)化。
a) 全部指針都為明確存儲(chǔ)類型的指針,以提高速度。
b) 對(duì)于可能被重入的函數(shù)聲明為reentant。
c) 根據(jù)程序的需要在內(nèi)存消耗和速度之間取舍,以選擇為xdata類型還是data類型。
3. 易用性:
(3) 實(shí)現(xiàn)BSD socket的函數(shù)集:
a) ZLIP實(shí)現(xiàn)了BSD socket的socket, sendto, recvfro,
connect, bind, listen, accept, send, recv, closesocket, shutdown,
getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt,
getsockopt,select共23個(gè)接口函數(shù)。支持阻塞(block)和非阻塞(nonblock)模式運(yùn)行,支持LINGER方式的socketclose()等。
b) 統(tǒng)一的socket接口簡(jiǎn)化了TCP/IP和應(yīng)用層的交互。著名的uIP有很小的代碼量(選擇AVR為目標(biāo)器件時(shí),代碼為5K左右)和RAM使用量(100字節(jié)左右),但是uIP沒(méi)有和BSD
socket接口兼容,它采用不保存需要應(yīng)答的數(shù)據(jù)包的RAM使用方案,當(dāng)數(shù)據(jù)包丟失時(shí),需要應(yīng)用層負(fù)責(zé)重發(fā),應(yīng)用層接口較復(fù)雜。
c) 統(tǒng)一的socket接口可以方便地將其它基于socket接口的開源程序移植到ZLIP上。
(4) 類MFC回調(diào)機(jī)制:MFC(Microsoft Foundation Class)CSocket的OnAccept、OnRecv、OnClose、OnConnect、OnRecvFrom回調(diào)機(jī)制能夠在TCP被連接、接收到數(shù)據(jù)、連接關(guān)閉、連接建立、UDP接收到數(shù)據(jù)情況下立即執(zhí)行回調(diào)函數(shù),使得編程非常方便。ZLIP實(shí)現(xiàn)全部5種回調(diào)機(jī)制。
4. 穩(wěn)定性:
(5) ZLIP從2003年至今經(jīng)過(guò)不斷完善,已經(jīng)是一個(gè)成熟的產(chǎn)品。
(6) 從2003開始,ZLIP在門禁系統(tǒng)、遠(yuǎn)程采集儀器等產(chǎn)品中經(jīng)過(guò)實(shí)際檢驗(yàn)。
(7) ZLIP增值版V1.0,經(jīng)過(guò)92個(gè)專門的測(cè)試程序,全面地測(cè)試了其穩(wěn)定性。
(8) 專門設(shè)計(jì)的校驗(yàn)和程序檢驗(yàn)了在大數(shù)據(jù)量(100MB)收發(fā)時(shí)收發(fā)數(shù)據(jù)的一致性。
5. 支持操作系統(tǒng):ZLIP增值版可以在無(wú)操作系統(tǒng)的平臺(tái)上或者有操作系統(tǒng)平臺(tái)上運(yùn)行。ZLIP增值版1.0之前版本主要運(yùn)行于非操作系統(tǒng)平臺(tái)上,增值版1.0增加了對(duì)uc/os-II的配合,真正實(shí)現(xiàn)了TCP/IP和OS在51單片機(jī)上的同時(shí)運(yùn)行。
除此之外,基于ZLIP的ZLWeb提供了通過(guò)瀏覽器對(duì)設(shè)備進(jìn)行控制和數(shù)據(jù)采集的接口;提供豐富的例子程序和詳細(xì)的用戶手冊(cè);提供卓嵐公司的ZLIP調(diào)試工具SocketTestDlg程序和ZLFs文件系統(tǒng)構(gòu)造程序ZLFsCreate。