單片機圖像采集與網(wǎng)絡(luò )傳輸
上面說(shuō)到,“IP組播地址”范圍是224.0.0.0到239.255.255.255。而以太網(wǎng)幀用到的“MAC組播地址”范圍是 01:00:5E:00:00:00-01:00:5E:7F:FF:FF 。MAC組播地址的構成方法是:前3個(gè)字節固定用01:00:5E,后3個(gè)字節則用IP組播地址的后3個(gè)字節。所以我們用234.5.6.7作IP組播地址時(shí),對應的MAC組播地址就是 01:00:5E:05:06:07。
在下面的程序中,RTL8019AS用查詢(xún)方式進(jìn)行發(fā)送操作。
UCHAR code dest_hwaddr[6] = { 0x01, 0x00, 0x5E, 0x05, 0x06, 0x07}; // 目標MAC組播地址
UCHAR code my_hwaddr[6] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; // 源MAC地址
void eth_send(UCHAR xdata * outbuf, UINT Data_len) // (例程7--以太網(wǎng)幀封裝和發(fā)送):
{ UINT i , send_len; ETH_HEADER xdata * eth; eth = (ETH_HEADER xdata *)outbuf;
for(i=0;i6;i++)
{ eth->dest_hwaddr[i]= dest_hwaddr[i]; // 裝入目的MAC地址。
eth->source_hwaddr[i]= my_hwaddr[i]; // 裝入源MAC地址。
}
eth->frame_type = IP_PACKET; // 數據類(lèi)型為IP數據報
// send_len為實(shí)際要發(fā)送的以太網(wǎng)幀長(cháng)度,它不能小于60字節:
send_len = (Data_len>=60) ? Data_len : 60 ;
reg00=0x22; // 選擇0頁(yè)寄存器,啟動(dòng)芯片。
while( reg00 0x04 ); // 原來(lái)的數據發(fā)送完沒(méi)有?完了往下執行
reg08=0x00; reg09=0x40; // 設置發(fā)送緩沖區開(kāi)始地址為4000H。
//設置(RBCR0-1)遠端DMA傳送數據包長(cháng)度(高、低字節):
reg0a=(unsigned char)(Data_len); reg0b=(unsigned char)(Data_len>>8);
reg00=0x16; // 設置遠端DMA寫(xiě),啟動(dòng)遠端DMA傳送數據到發(fā)送緩沖區
for(i=0;iData_len;i++) reg10=outbuf[i]; // 往RTL8019AS的I/O端口傳送圖像數據
reg04=0x40; // 設置發(fā)送緩沖區開(kāi)始地址高字節
//設置(TBCR0-1)發(fā)送字節計數器的計數長(cháng)度(高、低字節):
reg05=(unsigned char)(send_len); reg06=(unsigned char)(send_len>>8);
reg00=0x26; // 啟動(dòng)本地DMA操作,向網(wǎng)絡(luò )發(fā)送圖像數據。
}
上述程序先設置好遠端DMA開(kāi)始地址(RSAR)和遠端DMA數據字節數(RBCR),并設置遠端DMA寫(xiě)( reg00=0x16),就可以把圖像數據寫(xiě)入RTL8019AS的數據緩沖區。給出發(fā)送緩沖區首地址和數據包長(cháng)度后,啟動(dòng)發(fā)送命令 (reg00=0x26), RTL8019AS就會(huì )按以太網(wǎng)協(xié)議將圖像數據發(fā)送到網(wǎng)絡(luò )上。
4. 結束語(yǔ)
TCP/IP協(xié)議較復雜,嵌入式系統自身的資源又很有限,動(dòng)輒幾十K的TCP/IP協(xié)議棧,使很多入門(mén)者望而卻步。其實(shí)要在嵌入式系統實(shí)現TCP/IP協(xié)議,只不過(guò)就是編制各個(gè)符合TCP/IP協(xié)議規則的軟件模塊罷了。根據自己系統的具體情況編制專(zhuān)門(mén)的功能模塊,也可以實(shí)現相當簡(jiǎn)化的TCP/IP協(xié)議棧。本文在此給出了一個(gè)可供借鑒的實(shí)例。
參考文獻:
[1] 吳禮發(fā), 網(wǎng)絡(luò )程序設計教程[M],北京:希望電子出版社,2002.1
[2] RTL8019AS SPECIFICATION[EB/OL],REALTEKSEMI-CONDUCTOR CO., LTD , 2000.8.20
[3] 單片機與TCP/IP網(wǎng)絡(luò )[EB/OL], HTTP:// WWW.LAOGU.COM
評論