[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [usb] Clarification in USB



** Proprietary **

hi,

u have asked something which i can't answer appropriately. however see below for my explanation possibly close to ur understanding.

the value 800Dh is specified in the spec. and i don't know how exactly they might have got the idea of doing the CRC calculation like mentioned in the spec. but generally the same type(doing XOR) is followed everywhere for error checking. if u take an example and do the calculation for data & CRC fields, u will definitely get that value if there is no error. it's not like parity that if there are two errors in the bit stream, even then the parity will be same. here in USB, 800Dh appears only when all the bits received bits are error free.

probably u might be saying that zero value will be checked for even parity which is followed in RS232. maybe in some other serial bus protocols but not here in USB.

...vikas.

>>> ravikumar_vlsi@yahoo.co.in 09/25/02 07:43PM >>>
hi,
Vikas Would u pls tell me how did they arrive at a
value 800d as a residual polynomail
In General reciver checks for zero value in crc after 
manipulating the crc for entire received data.

Pls Reply ASAP
With Regards
Ravikumar

 --- Vikas T Rao  <vikasraot@myw.ltindia.com> wrote: >
** Proprietary **
> 
> hi,
> 
> i hope u might be very new to the USB protocol. the
> problem can be better understood if u read the USB
> Spec. however i am giving a brief explanation of it
> below.
> 
> CRC is used for checking whether there is any error
> in the data received. if u can go into 8.3.5.2 of
> USB Spec1.1, the residual polynomial for the error
> free data reception should be equal to 800Dh. hence
> in the assignment, that value is used to check
> whether all the received bits(data & CRC fields) are
> correct or not.
> 
> ...vikas.
> 
> >>> koyo@itri.org.tw 09/25/02 02:16PM >>>
> Hello!! Everybody
> 
> I have the question about the opencore USB core.
> The original verilog code is following :
> assign crc16_err = data_done & (crc16_sum !=
> 16'h800d);
> I don't understand why the check number of CRC16 is
> 800d(Hex).
> 
> best regards  
> --
> To unsubscribe from usb mailing list please visit
> http://www.opencores.org/mailinglists.shtml 
> 
> --
> To unsubscribe from usb mailing list please visit
http://www.opencores.org/mailinglists.shtml 

________________________________________________________________________
Missed your favourite TV serial last night? Try the new, Yahoo! TV.
       visit http://in.tv.yahoo.com 
--
To unsubscribe from usb mailing list please visit http://www.opencores.org/mailinglists.shtml

--
To unsubscribe from usb mailing list please visit http://www.opencores.org/mailinglists.shtml