完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我需要通过USB从PIC32MZ向P C发送大量的数据(最大14MB左右),从我的互联网读数来看,即使USB 2.0是60MB字节/秒,我还是看到报告说由于消息开销,35MB字节/秒是最大实际数据吞吐量。在我希望能够用PIC32 MZ传输数据时,我打算使用批量模式。(因为这似乎是最快的方法)2)我需要什么样的设置来发送数据最快?我应该在RAM缓冲器中设置非常大的65536个数组,然后同时请求大的块吗?缓冲区有多大?我知道PIC32 MZ有512K RAM,但是当从端点读取时,USB堆栈的大小是否有限制?3)在USB堆栈的和谐配置器设置中,增加“端点读取队列大小”或“端点写入队列大小”是否有帮助?(现在他们根据‘卖主’的例子设置为‘1’)谢谢你的帮助!
以上来自于百度翻译 以下为原文 I need to send large amounts of data from the PIC32MZ to the P.C. over USB (around 14MB maximum) From my internet readings, even though USB 2.0 is 60MBytes/sec I have seen reports that 35MBytes/sec is the real data throughput maximum due to message overhead. 2 questions: 1.) What is the maximum speed that I can expect to be able to transfer data with PIC32MZ, I intend to use BULK mode. (since this seem to be the fastest method) 2.) What setup do I need to send the data the fastest? Should I setup very large 65536 arrays in RAM buffers and then request large chunks at once? How large can the buffer be? I know the PIC32MZ has 512K RAM, but does the USB stack have a limit on size when reading from the endpoint? 3.) In the HARMony Configurators settings for USB Stack, does increasing the "EndPoint Read Queue Size" or "EndPoint Write Queue Size" help with anything? (right now they are set to '1' based on the 'Vendor' example) Thanks for your help! |
|
相关推荐
10个回答
|
|
你正在看设备模式还是主机模式的使用?
以上来自于百度翻译 以下为原文 Are you looking at device mode or host mode usage? |
|
|
|
|
|
|
|
是的,它的设备模式。我设置了一个测试来读取不同大小的20000个包。到目前为止,我的测试结果是:包大小(字节)传输速度(MBytes/sec)64 0.46128 0.92256 1.79512 3.431024 5.472048 8.564096 12.518192 16我正在想我能否做点别的事情来加快速度:)我读到35MBytes/sec是我从高速USB中真正期望的最快的。
以上来自于百度翻译 以下为原文 Yes, its Device Mode. I setup a test to read 20,000 packets at different sizes. My testing results so far are: packet size (bytes) transfer speed (MBytes/sec) 64 0.46 128 0.92 256 1.79 512 3.43 1024 5.47 2048 8.56 4096 12.51 8192 16.1 16384 20.85 32768 23.21 65536 24.2 I was just wondering if I can do anything else to go faster :) I read that 35MBytes/sec is the fastest I can really expect from high speed USB |
|
|
|
我不确定你用来测试这个过程,是WiUSB设备吗?你能分享你的代码吗?我意识到共享代码与和谐,特别是在这个论坛,并不是一件简单的事情要实现!]
以上来自于百度翻译 以下为原文 I'm not sure of the process you're using to test this, is it a WinUSB device? Can you share your code? [I realise sharing code with Harmony, and particularly on this forum, isn't exactly a simple thing to achieve!] |
|
|
|
嗨,检查USB 2.0高速带和批量传输。480Mbits/s是最大的带,但是这个带不仅可用于批量传输。控制传输消耗10%:http://www.beyondlogic.org/u***nutshell/u***4.shtml所以它最多意味着432Mbits/s(54MB/s)。MZ可以处理这个数据(取决于总体应用和软件)考虑。
以上来自于百度翻译 以下为原文 Hi, Check USB 2.0 High speed bandwith and bulk transfers. 480Mbits/s is the max bandwith but this bandwith is not available only for Bulk transfers. Control transfers eat up 10% : http://www.beyondlogic.org/u***nutshell/u***4.shtml So it means at best it is 432Mbits/s (54MB/s). Also this assumes the PIC32MZ can process this datarate (depends upon overall application and software) Regards |
|
|
|
旧MLA中的“高带宽”示例使用多个端点到最大传输速率,我不确定这是否适用于您的应用程序。注意,不要太兴奋,它不是高带宽,因为它受到由该栈支持的硬件限制的USB FS的限制。
以上来自于百度翻译 以下为原文 The "High bandwidth" example in the old MLA uses multiple endpoints to maximise transfer rate, I'm not sure if that's a possibility for your application. Note, don't get too excited, it's not that high bandwidth as it's limited by USB FS limited by the hardware supported by that stack. |
|
|
|
可以使用协调设备堆栈的排队特性来最大化吞吐量。您需要确保正确设置MHC中的队列大小。你能发布你的项目和你正在使用的来衡量栈的速度吗?
以上来自于百度翻译 以下为原文 You can use the queuing feature of the Harmony Device Stack to maximize your throughput. You will need to make sure that you have setup the queue sizes in MHC correctly. Could you post your project and what you are using to measure the speed of the stack. |
|
|
|
可以使用协调设备堆栈的排队特性来最大化吞吐量。您需要确保正确设置MHC中的队列大小。你能发布你的项目和你正在使用的来衡量栈的速度吗?如果您使用的是PC USB主机,主机控制器的速度可能会影响吞吐量的测量。
以上来自于百度翻译 以下为原文 You can use the queuing feature of the Harmony Device Stack to maximize your throughput. You will need to make sure that you have setup the queue sizes in MHC correctly. Could you post your project and what you are using to measure the speed of the stack. If you are using a PC USB host, the speed of the host controller will may affect the measurement of throughput. |
|
|
|
嗯,我只是碰到了同样的速度瓶颈。将队列增加到4个和4个队列,并调整代码以保持队列满,只会产生非常小的影响。
以上来自于百度翻译 以下为原文 Hmm, I just hit the same kind of speed bottleneck. Increasing to 4 in and 4 out queues and adjusting the code to keep the queues full had only a very minor impact. |
|
|
|
嘿,AllI正在使用PIC32MZ EF启动器作为USB HS设备-供应商winu***演示。在PC端,我修改了来自MLA的HighBandwidth USB演示,以使用固件。我不明白一些事情:1。在HS设备上,最大数据包大小为512字节。512还是更多?2。在这个例子中,有一个for循环5乘以x 64000缓冲区x3Endpoint=960000字节。如果我们可以发送更大的缓冲区,为什么会有一个循环呢?三。我不理解配置的和谐性。谁决定使用多少端点?什么是SOF事件,应该启用它吗?函数1是什么?我什么时候需要2个或更多?端点读写队列大小是多少?利奥尔
以上来自于百度翻译 以下为原文 Hey All I am using PIC32MZ EF Starter kit as USB HS device - vendor winu*** demo. on PC side I modified HighBandwidth USB demo from MLA to work with the firmware. I don't understand a few things: 1. On HS device the maximum packet size is 512 bytes. Using WinUSB_WritePipe what should I send on BufferLength? 512 or more? 2. In the example there is a for loop 5 times x 64000 buffer x 3 Endpoints = 960,000 bytes Why is there a loop if we can send bigger buffers? 3. I don't understand the configuration in Harmony. Who decides how many endpoints are being used? what is SOF events and should it be enabled? what is function 1? when do I need 2 or more? What is endpoint read/write queue size? Lior |
|
|
|
只有小组成员才能发言,加入小组>>
5250 浏览 9 评论
2037 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2266 浏览 5 评论
788浏览 1评论
680浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
609浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 18:37 , Processed in 1.548292 second(s), Total 94, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号