基于ARM的嵌入式網絡接口控制器設計
操作,程序代碼如下:
int fd;
fd=open(“/dev/ttyS0”,O_RDWR);
if(fd==-1) {perror(“提示錯誤!”);}
然后設置串口的波特率、校驗位和停止位。要用網卡接收發送數據,就要首先創建套接字,程序代碼如下:
int sock_fd;
sock_fd=socket(AF_INET,SOCK_STREAM,O)
if(sock_fd==-1)
{perror(“socket”);
exit(1);}
然后設置屬性,然后等待客戶端的連接,一旦建立連接,就可以實現數據的接收和傳送。
數據處理在整個程序中是十分關鍵的一環,該環節中實現的是在網絡數據和串口數據之間的相互交換,根據實際需要也可以將網絡數據轉換成并行數據或者其他類型接口的數據;這里網絡和串口數據交互處理分成兩部分,一部份是網絡數據轉變成串口數據,另一部份是串口數據發送到網絡上,其流程圖如圖4、5所示。為了充分利用系統資源,在數據處理程序中調用select()函數。Select函數原型為:int select(int numfds,fd_set *readfds,fd_set *writeset,fd_set *exceptset,const struct timeval *timeout);
返回:準備好的文件描述符個數(可以是0),-1表示出錯。
6 結束語
本文作者創新點:本文采用性價比高的32位微處理器s3c2410作為主控芯片,移植了源代碼開放的Linux,它易于實現了TCP/IP處理模塊,這樣大大縮短了產品開發周期,并有利于提高了串口數據和以太網數據的轉換速率,提高數據傳輸的實時性,使傳統串口設備方便接入以太網,為以太網在控制層和設備層的應用奠定了基礎。
評論