• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 使用 TCP 得函式接收Buffer 太小
#5
高級會員
高級會員


查看用戶資訊
;我用的TCPIP STACK是 3.75 版 PIC97J60, 我想在28J60中定義的名稱應該相同, 找一下應該找的到

;在 eth97j60.c 中有

// NIC RAM definitions
#define RAMSIZE 8192ul
#define TXSTART (RAMSIZE-(MAC_TX_BUFFER_COUNT * (MAC_TX_BUFFER_SIZE + 8ul)))
#define RXSTART (0ul)
#define RXSTOP ((TXSTART-2ul) | 0x0001ul)
#define RXSIZE (RXSTOP-RXSTART+1ul)

;其中的 TX_BUFFER 定義在 StackTsk.h 內

#define MAX_SOCKETS (6u)
#define MAC_TX_BUFFER_SIZE (576)
#define MAC_TX_BUFFER_COUNT (MAX_SOCKETS+1)

;因為 97J60有8k RAM , 其中 4K用於 TX , 所以RX 只能有4K大小

;以上的說明是在 MAC LAYER 的計算


;-------------------------------------------
;至於你問的問題 :
請教在哪裡可以修改讓我可以一次讀入 400 個 Byte
;我覺得只要所有SOCKET的RX總和不超過 4K , 那你要一次接收400 或 500 BYTES 都不是問題 , 只要傳送那端一次送出那麼多資料即可
;你的問題應該在 APPLICATION LAYER 的接收資料的RAM(通常用陣列)要如何宣告那麼大的空間 ? 我記得版大有說過改 *.LKR 檔

發表於: 2009/4/18 2:23

Edited by genitec on 2009年04月18日 02:40:32
Edited by genitec on 2009年04月18日 03:06:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用 TCP 得函式接收Buffer 太小
#4
新會員
新會員


查看用戶資訊
安裝完Microchip's TCP/IP Stack後,使用TCPIP Configuration Wizard幫你修改『TCPIPConfig.h』想要的數值。

Wizard一開始要記得勾選Show Advanced Settings,之後設定過程中會各種RX、TX的相關設定。

你試過後有無效果,方便的話麻煩回報一下,謝謝。設定位置如附檔。 ^__^

Attach file:



jpg  (0.00 KB)


jpg  (0.00 KB)


發表於: 2009/4/17 23:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用 TCP 得函式接收Buffer 太小
#3
管理員
管理員


查看用戶資訊
根據 COM4201 教材 (可從右方搜尋下載安裝),TCP在傳送前要先問有多少空間可使用,如欲傳送的資料量大於可用空間,就必須要多傳送幾次才行。相同地,在接收方要讀取資料,也是先詢問有多少資料待讀取,有多少就讀多少。所以,400個BYTE就算一次讀不完,多讀幾次就讀完了。
講義中有提及,等久一點時間就可於一筆多傳一些資料,但是只舉50個BYTE 為例子。至於讀入資料,就沒有舉例是否等久一點就可一次多讀一些資料了。
另外,TCP 傳送端在傳送資料前,會先知道接收端有多大的BUFFER可以收資料。所以,應該不會一次送出資料太多,而讓資料遺失才是。
參照:

austin1211 寫道:
請教線上先進,
我使用 30F6010 接 28J60 做與PC 通訊
我將 30F6010 設程 TCP/IP Server
我使用 PC 傳一串封包進入28J60
但是在程式之中,
我只讀到 20個 Byte

我使用 TCPIsGetReady( Socket ) 來讀取Rx 封包個數
使用 TCPGetArray( Socket , Buffer , len )
來接收資料

請教在哪裡可以修改讓我可以一次讀入 400 個 Byte

謝謝

發表於: 2009/4/8 14:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用 TCP 得函式接收Buffer 太小
#2
版主
版主


查看用戶資訊
問過 FAE Steven Lin 說依比封包的大小應該不是這樣的認定的。
打電話直接問他比較清楚。

02-25006610 分機:803

發表於: 2009/4/8 13:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


使用 TCP 得函式接收Buffer 太小
#1
高級會員
高級會員


查看用戶資訊
請教線上先進,
我使用 30F6010 接 28J60 做與PC 通訊
我將 30F6010 設程 TCP/IP Server
我使用 PC 傳一串封包進入28J60
但是在程式之中,
我只讀到 20個 Byte

我使用 TCPIsGetReady( Socket ) 來讀取Rx 封包個數
使用 TCPGetArray( Socket , Buffer , len )
來接收資料

請教在哪裡可以修改讓我可以一次讀入 400 個 Byte

謝謝

發表於: 2009/4/8 10:50
Austin
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------