阅读:6108回复:24
大家都来看一下丫
呵呵,我得板子做到这个成都乐,遇到一些问题,大家帮忙分析一下:D
我用的是ti的tsb43aa82,链路层和物理层集成的,先做的是异步传输。现在从计算机发过来得请求包已经可以接收到乐,不过还有如下一些问题: 1。当主机发送写请求包时,我所做的设备应该如何响应,即写响应包是由芯片自动发送的还是需要我来构造?因为从主机的程序来看,如果我主动不发送写响应包的话,主机程序也能返回成功;换句话说是不是我只要分析写请求包中的数据就行乐,还是除了接收数据外,另外再发送写响应包?(这个是不是跟写入的地址有关系丫?,如果有关的话,就假设写入目的地址是不能自动回复的地址) 2。当主机发送读请求包时,如果我不做响应,主机的程序会显示收到0个字节.但是当我收到主机的读请求包并发出读响应包时(可从示波器上看出,确实有响应包发出),引起主机出现WINDOWS 的0x17号错误,说是crc校验错误,那么这个错误到底 发生在什么阶段,是不是发生在数据传输时丫?crc不是由链路层自动算出来的吗?应该不用我干预吧! 读响应包按如下规则构造:分析收到的读请求包,并提取出Tlable和Tcode,则读响应包中的Tlable和请求包中的相同,Tcode则根据请求包为“块”或“4字节”做相应设置。 3。当我用设备发送块读请求包时(tcode=5),发生错误分析返回的响应包,其中status=0xA:The response packet was received but rCode is not complete.再去看响应包中的rcode=7:the destination offset field in the request was set to an address not acessible in the destination node.目标地址不能存取?我换了豪夺地址也都不行:( 4。设备发送4字节写请求包时,返回的响应包时对的,可换成块写请求包(4字节以上)时就有出现了上述错误:(。 这些问题不知道大家是否遇到过,一起讨论一下丫:D 另外,那位老兄可以详细讲一下sbp和orb丫:D 呼呼,我以后还会把遇到的问题在铁出来,如果有解决的方法也一并贴出:DDDD [编辑 - 11/2/02 by ARRON] [编辑 - 11/3/02 by ARRON] |
|
沙发#
发布于:2002-11-02 23:13
我现在也正在研究linux下的1394驱动的源代码,不知道你的板子
是要实现总线管理器和定时器等功能吗?还是仅仅做target? 1。当主机发送写请求包时,我所做的设备应该如何响应,即写响应包是由芯片自动发送的还是需要我来构造? 好像需要由程序构造来响应的(参考linux驱动),当然如果你的 芯片内嵌firmware可以自动完成那更好 2。当主机发送读请求包时,如果我不做响应,主机的程序会显示收到0个字节.但是当我收到主机的读请求包并发出读响应包时(可从示波器上看出,确实有响应包发出),引起主机出现WINDOWS 的0x17号错误,说是crc校验错误,那么这个错误到底 发生在什么阶段,是不是发生在数据传输时丫? 有可能啊,有可能是你构造的读响应包不对 大小端的问题可能有影响的。 3。当我用设备发送块读请求包时(tcode=5),发生错误分析返回的响应包,其中status=0xA:The response packet was received but rCode is not complete.再去看响应包中的rcode=7:the destination offset field in the request was set to an address not acessible in the destination node.目标地址不能存取?我换了豪夺地址也都不行:( 是不是主机的那些地址是不允许你访问的吧!! 4。设备发送4字节写请求包时,返回的响应包时对的,可换成块写请求包(4字节以上)时就有出现了上述错误:(。 这些问题不知道大家是否遇到过,一起讨论一下丫:D 另外,那位老兄可以详细讲一下sbp和orb丫:D sbp就是个serial bus protocol,是高层的协议,可以在1394上实现 也可以在别的总线上实现。主要是用来传送命令和控制信息的协议, 只是个传输层协议,传输的命令集任意。 orb不太明白。 |
|
板凳#
发布于:2002-11-03 09:48
呼呼,高手来乐,能不能六个地址丫?有时间讨论一下 :D
|
|
地板#
发布于:2002-11-03 09:53
我现在也正在研究linux下的1394驱动的源代码,不知道你的板子 响应包的构造如上所述,对于一个4字节读请求来说,响应包应该不会错的,应该是4个quadlet吧:(. 设备的arf接受到主机的4字节读请求包,然后根据包中的tlable,和tcode,构造响应包,用atf发送,不知道rcode和status怎么得到,是链路层自动给的吗? [编辑 - 11/3/02 by ARRON] |
|
地下室#
发布于:2002-11-03 22:41
为什么同样的地址,从主机发到我班子上就可以接受丫 :( |
|
5楼#
发布于:2002-11-04 11:28
也许目标板没有配置好寄存器地址吧?也许是主机程序的问题?
|
|
6楼#
发布于:2002-11-04 13:18
看了你的几个问题,我觉得wood1head2 说的很有道理。
你可以试试看,我估计也是你的一些响应包 构造的有点问题 导致的, 设备读不成功应该就是你读的位置没有被映射的原因。 那么写成功,应该只是个假相,其实没有成功 - 我估计的 我的板子硬件调试有一定的进展了,协议上的东西 我马上就要测试了 我们的芯片不一样,我的可以自己的软件要做的工作会更多一点, 你的有写是芯片硬件做掉了(至少是configROM自动完成了) 有新进展我也来汇报工作 哈哈 置顶 置顶到最上面了 东西丢掉是网站的问题。我也没办法 BTW:网站不是我开的 |
|
|
7楼#
发布于:2002-11-04 23:28
试了试不同的地址,才明白当主机发送读请求包时:有的地址是自动回复的,有的地址不能回复,有的地址就可以回复了,今天终于实现了向主机传一点点数据:),不过还是不知道这些地址怎么来划分,是不是不同的芯片也不一样丫?郁闷ing :(
|
|
8楼#
发布于:2002-11-05 17:12
试了试不同的地址,才明白当主机发送读请求包时:有的地址是自动回复的,有的地址不能回复,有的地址就可以回复了,今天终于实现了向主机传一点点数据:),不过还是不知道这些地址怎么来划分,是不是不同的芯片也不一样丫?郁闷ing :( 试一下 ASYTST_ADDR_HI 0x0001 ASYTST_ADDR_LO 0x00000000 |
|
|
9楼#
发布于:2002-11-05 17:15
[quote]试了试不同的地址,才明白当主机发送读请求包时:有的地址是自动回复的,有的地址不能回复,有的地址就可以回复了,今天终于实现了向主机传一点点数据:),不过还是不知道这些地址怎么来划分,是不是不同的芯片也不一样丫?郁闷ing :( 试一下 ASYTST_ADDR_HI 0x0001 ASYTST_ADDR_LO 0x00000000 [/quote] 呼呼,多谢斑竹,今天我看了一下你用的片子,这个地址已经试过乐 可以的. 为什么要分成0_0000ffffffff和,1_0000_0000-fffffffff呢? 我的芯片好像不是这样分的:( |
|
10楼#
发布于:2002-11-06 21:30
不要指定了,没人看到了
|
|
|
11楼#
发布于:2002-11-06 21:32
[quote][quote]试了试不同的地址,才明白当主机发送读请求包时:有的地址是自动回复的,有的地址不能回复,有的地址就可以回复了,今天终于实现了向主机传一点点数据:),不过还是不知道这些地址怎么来划分,是不是不同的芯片也不一样丫?郁闷ing :( 试一下 ASYTST_ADDR_HI 0x0001 ASYTST_ADDR_LO 0x00000000 [/quote] 呼呼,多谢斑竹,今天我看了一下你用的片子,这个地址已经试过乐 可以的. 为什么要分成0_0000ffffffff和,1_0000_0000-fffffffff呢? 我的芯片好像不是这样分的:( [/quote] 什么意思啊? 这个地址在你那是不是可以啊? 全部OK了吗? 这跟芯片没什么关系吧,是协议本身的问题。你一定是用了系统保留的地址了 |
|
|
12楼#
发布于:2002-11-06 21:32
[quote][quote][quote]试了试不同的地址,才明白当主机发送读请求包时:有的地址是自动回复的,有的地址不能回复,有的地址就可以回复了,今天终于实现了向主机传一点点数据:),不过还是不知道这些地址怎么来划分,是不是不同的芯片也不一样丫?郁闷ing :( 试一下 ASYTST_ADDR_HI 0x0001 ASYTST_ADDR_LO 0x00000000 [/quote] 呼呼,多谢斑竹,今天我看了一下你用的片子,这个地址已经试过乐 可以的. 为什么要分成0_0000ffffffff和,1_0000_0000-fffffffff呢? 我的芯片好像不是这样分的:( [/quote] 什么意思啊? 这个地址在你那是不是可以啊? 全部OK了吗? 这跟芯片没什么关系吧,是协议本身的问题。你一定是用了系统保留的地址了 [/quote] windows 的驱动例程也是这么用的 |
|
|
13楼#
发布于:2002-11-06 23:19
可以压:D。 如果是协议问题的话,两个node的保留地址应该一样丫,但现在好像不一样的说:( 现在想是不是不能往主机发请求丫?难道必须有主机发请求,我来相应?不应该是这样吧:(。 |
|
14楼#
发布于:2002-11-06 23:22
老大,怎么不置顶乐 :(
|
|
15楼#
发布于:2002-11-11 18:44
我也边看Linux的1394代码边自己写,是在VxWorks下面。我才刚开始,刚刚完成了初始化。向各位大哥学习。
|
|
16楼#
发布于:2002-11-16 12:43
[quote] 可以压:D。 如果是协议问题的话,两个node的保留地址应该一样丫,但现在好像不一样的说:( 现在想是不是不能往主机发请求丫?难道必须有主机发请求,我来相应?不应该是这样吧:(。 [/quote] 置顶了 反倒可能看不到 别人以为是古董了呢 |
|
|
17楼#
发布于:2002-11-16 12:45
[quote] 可以压:D。 如果是协议问题的话,两个node的保留地址应该一样丫,但现在好像不一样的说:( 现在想是不是不能往主机发请求丫?难道必须有主机发请求,我来相应?不应该是这样吧:(。 [/quote] 不同的1394芯片的开发用途不完全一样, 针对某些专门的用途,芯片可能会针对该应用做了额外的处理。 以为然否? |
|
|
18楼#
发布于:2003-10-12 13:14
厉害!!!
一看就是高手?? 以后能否帮小弟一吧 |
|
19楼#
发布于:2003-12-09 16:44
小弟在linux下开发TI的tsb42ab4的驱动程序,大家都说说自己用的什么片子,可以互相借鉴,互相讨论亚。
|
|
上一页
下一页