|
|
chiro8x wrote:
Mình chỉ muốn biết nó tương tác với hardware thế nào thôi, mình chưa lập trình tầng driver bao giờ . Cảm ơn bồ nhiều nhé.
Chúc bồ công tác tốt.
Đã send cho bồ 2 file code driver, nếu okie có hứng thú tiếp thì mình gửi cho thêm nha ....
Để thuận tiện cho việc xem code bồ nên tìm hiểu sơ về thế nào là chuẩn truyền thông SPI giữa chip AVR và Chip set WIFI ZG2100.
|
|
|
chiro8x wrote:
Mrnguyenphuc wrote:
Mình đang viết driver cho chipset wifi, các phần ICMP, ARP, đã xong còn phần DHCP này thôi, nhưng mới viết được mỗi hàm discover này thì bị lỗi rồi.hihi, về soucre code thì mình sẽ gửi cho bạn một phần vào ngày mai. Mình đang online bằng tablet nên không có mang theo dữ liệu.
Ăn quả lừa rồi ! chờ hoài không thấy mail đâu.
Xin lỗi chiro8x, mấy hum nay mình bận đi công tác nên không có time để online, bạn muốn lấy phần nào của driver mình ??? .Mình sẽ share hạn chế thôi nhá.. Chưa public được nhiều mong bạn thông cảm.
|
|
|
phuongnvt wrote:
Mrnguyenphuc wrote:
phuongnvt wrote:
Bác này chắc đang dự định sản xuất card mạng đây mà.
cũng gần giống vậy rồi bạn ak..mình viết driver cho module wifi mà. Còn vài chỗ chưa nghiên cứu vấn đề mà mình quan tâm nhất đó là làm sao 1 card Wifi có thể xác định được có bao nhiêu mạng Wifi đang hiện diện xung quanh nó. . nó sẽ tìm các gói tin broadcast của modem wifi (chứa thông tin channel và BSSID) đúng không các bạn ??
Bồ có thể bật mí tí về sơ đồ mạch điện bồ đang thiết kế ko? Vi điều khiển sử dụng chip AVR ah ?
Mình rất muốn chia sẻ cho bạn, nhưng dự án nằm trong dạng giai đoạn nghiên cứu nên chưa thể release cho mọi người được. Bạn thông cảm. Vâng, mình sử dụng chip AVR + module Wifi ZeroG2100 của microchip.
|
|
|
xnohat wrote:
Mrnguyenphuc wrote:
Cheer..
Có được người góp ý cho mình thì mình phải vui chứ. Mình làm chưa tốt mà phải biết sai sót ở đâu mà còn sửa nữa chứ. Đúng không anh TQN ?
Thanks nha chiro8x ak sao không thấy ông bạn online skype vậy. Thỉnh thoảng trao đổi kinh nghiệm nữa chứ. Mình có viết driver (language c), Android app (java), iOS app (C Object). Rất mong được chỉ giáo thêm.
Hi bồ,
mấy anh em trong HVA đang có làm một dự án nhỏ khá quan trọng về vấn đề điều tiết lưu lượng mạng, sẽ rất tuyệt nếu bồ tham gia, nếu bồ quan tâm thì PM tôi qua Y!M: xnohat hay facebook.com/xnohat nhé
Trân trọng,
Đã add friend FB của anh xnohat...mong được tìm hiểu thêm về chương trình dự án của mấy anh.
|
|
|
phuongnvt wrote:
Bác này chắc đang dự định sản xuất card mạng đây mà.
cũng gần giống vậy rồi bạn ak..mình viết driver cho module wifi mà. Còn vài chỗ chưa nghiên cứu vấn đề mà mình quan tâm nhất đó là làm sao 1 card Wifi có thể xác định được có bao nhiêu mạng Wifi đang hiện diện xung quanh nó. . nó sẽ tìm các gói tin broadcast của modem wifi (chứa thông tin channel và BSSID) đúng không các bạn ??
|
|
|
Cheer..
Có được người góp ý cho mình thì mình phải vui chứ. Mình làm chưa tốt mà phải biết sai sót ở đâu mà còn sửa nữa chứ. Đúng không anh TQN ?
Thanks nha chiro8x ak sao không thấy ông bạn online skype vậy. Thỉnh thoảng trao đổi kinh nghiệm nữa chứ. Mình có viết driver (language c), Android app (java), iOS app (C Object). Rất mong được chỉ giáo thêm.
|
|
|
Cám ơn bạn TQN đã góp ý cho code của mình nhiều lắm.
Đoạn code trên đầu tiên chạy được là ok rồi, mình còn customize lại nữa bạn ah, phải tiến hành đo thời gian và tần số thực thi của chip nữa và tiếp theo sẽ quyết định lựa chọn phép toán nào có tốc độ thực thi nhanh hơn, việc này sẽ do partner của mình chuyên về Điện tử thực hiện, chứ không phải nhiêu đấy là đập vào cho em chip ngay được.
Nhiêu đây cũng mất 3 ngày tìm hiểu DHCP của mình rồi. Một lần nữa cám ơn chiro8x nha. Bạn mà có ở đây là đãi bạn một chầu nhậu rồi ... .
|
|
|
chiro8x wrote:
Code:
sum+= 17; // ip protocol = UDP
sum+= len - 8; // len - ip addr len
Như mình nói trước đó là có khả năng bạn tính thiếu 1 byte. Trong lập trình gọi là lỗi hụt một, về cơ bản đáng ra bạn tính toán tới n như bạn dừng lại ở n - 1. Bạn thử tăng len (unsigned int len) lên 1 hoặc giảm 1 xem có gì thay đổi không. Nếu bạn test thử và luôn cho kết quả là thiếu 1 thì bạn cộng thêm cho nó trước khi return (giải pháp tình thế thôi).
Code:
Thanks Chiro nhiều lắm. Mình sửa lại chỉ cần cộng thêm 1 byte reserved và kết quả em server DHCP đã trả lời OFFER cho mình.
Code:
if (type ==1){
sum+= 17; // ip protocol = UDP
sum+= len - 8; // len - ip addr len
sum+=1;
}
Đây là link packet của mình đã DISCOVER thành công.
http://www.mediafire.com/?h2eva1hccogb0ob
Giờ bước tiếp theo chỉ là đơn giản xử lý gói tin e nó trả về thôi.
|
|
|
Cám ơn chiro8x đã xem qua code của mình. Mình sẽ tiếp tục sửa xem sao.
TQN wrote:
Trời quơi, viết code được như vậy mà không biết debug, step, trace à ? Xem bị tràn số, sai thứ tự ưu tiên ở đâu. Chả lẽ cứ run là xong à ?
Bạn ah, mình lập trình cho chip làm gì có tool debug và trace hả bạn bạn biết IDE ICC AVR không? Mình đang dùng nó để viết cho chip AVR. Cách debug biến nhanh nhất là hiển thị lên màn hình LCD 2 line bé xíu.
|
|
|
Okie, mình đã bậc được mode checksum UDP.
Lay hoay sửa lại hàm checksum nhưng sao chạy mãi vẫn bị lỗi checksum.
Đây là hàm checksum của mình.
Code:
/******************************************************************************
* check sum
******************************************************************************/
unsigned int checksum(unsigned char *rxtx_buffer, unsigned int len, unsigned char type)
{
//type 0 = ip
// 1 = udp
// 2 = tcp
unsigned long sum = 0;
if (type ==1){
sum+= 17; // ip protocol = UDP
sum+= len - 8; // len - ip addr len
}
if (type == 2){
sum+= 6;// ip protocol = TCP
sum+= len - 8;
}
while(len>1)
{
sum += 0xFFFF & (*rxtx_buffer<<8|*(rxtx_buffer+1));
rxtx_buffer+=2;
len-=2;
}
if (len)
{
sum += (0xFF & *rxtx_buffer)<<8;
}
while (sum>>16)
{
sum = (sum & 0xFFFF)+(sum >> 16);
}
return( (unsigned int) sum ^ 0xFFFF);
}
Và đây là code gọi hàm checksum. packet len là : 313 bytes => udp len = 313 - 34 = 279 bytes.
Code:
//set UDP checksum
ck=checksum( &buf[26],8 + 279,1);// 1 : UDP type
buf[40]=ck>>8; // udp check sum hight byte
buf[41]=ck& 0xff;//udp check sum low byte
Lúc này kết quả tính được là checksum = 0x4a48 = 19016 trong khi đó wireshark báo lỗi và trả về kết quả là "Should be 0x4a47 = 19015" chỉ sai 1 đơn vị.
Không biết sai ở chổ nào mong bạn xem giúp mình. Thanks.
|
|
|
Okie, mình đã bậc được mode checksum UDP.
Lay hoay sửa lại hàm checksum nhưng sao chạy mãi vẫn bị lỗi checksum.
Đây là hàm checksum của mình.
Code:
/******************************************************************************
* check sum
******************************************************************************/
unsigned int checksum(unsigned char *rxtx_buffer, unsigned int len, unsigned char type)
{
//type 0 = ip
// 1 = udp
// 2 = tcp
unsigned long sum = 0;
if (type ==1){
sum+= 17; // ip protocol = UDP
sum+= len - 8; // len - ip addr len
}
if (type == 2){
sum+= 6;// ip protocol = TCP
sum+= len - 8;
}
while(len>1)
{
sum += 0xFFFF & (*rxtx_buffer<<8|*(rxtx_buffer+1));
rxtx_buffer+=2;
len-=2;
}
if (len)
{
sum += (0xFF & *rxtx_buffer)<<8;
}
while (sum>>16)
{
sum = (sum & 0xFFFF)+(sum >> 16);
}
return( (unsigned int) sum ^ 0xFFFF);
}
Và đây là code gọi hàm checksum. packet len là : 313 bytes => udp len = 313 - 34 = 279 bytes.
//set UDP checksum
ck=checksum( &buf[26],8 + 279,1);// 1 : UDP type
buf[40]=ck>>8; // udp check sum hight byte
buf[41]=ck& 0xff;//udp check sum low byte
|
|
|
chiro8x wrote:
Check sum bị lỗi nên nó sẽ không được xử lí đâu, bạn thấy gói tin bình thường là do bạn chưa bật chế độ kiểm tra checksum với UDP packet.
Bạn nói bậc chế độ kiểm tra checksum với UDP Packet, như thế này đúng không, máy mình đã bậc lên rồi mà, sao vẫn không phát hiện lỗi checksum UDP vậy ?
/gnp.muskcehc/048/segami-ym/otohp/su.kcahsegami//:ptth
Vào Network connection -> sau đó config lại card mạng UDP Checksum offload (IPv4) và Enable lên đúng không ?
|
|
|
Mình sẽ gửi cho bạn hàm dhcp discover do tự mình viết rất đơn giản và thích hợp với chipset. Skype của mình là ncphuc99. Hi vọng được tham khảo một vài ý kiến của bạn.
|
|
|
Mình đang viết driver cho chipset wifi, các phần ICMP, ARP, đã xong còn phần DHCP này thôi, nhưng mới viết được mỗi hàm discover này thì bị lỗi rồi.hihi, về soucre code thì mình sẽ gửi cho bạn một phần vào ngày mai. Mình đang online bằng tablet nên không có mang theo dữ liệu.
|
|
|
Oh, thì ra là vậy, đúng là mình không bậc kiểm tra checksum trong wireshark, nên mấy gói tin của mình trông rất bình thường nhìn như không bị lỗi gì. Cám ơn bạn đã kiểm tra giúp mình, chắc mình phải sửa lại hàm checksum rồi. Chipset của mình chưa được gán ip, nếu muốn gán ip tĩnh thì vẫn được nhưng mình muốn cho nó hoạt động được với dhcp.
Mình không sử dụng thư viện nào cả, mọi hàm mình tự viết hết do mấy thư viện kia không thể hoạt động được với chip của mình. Một lần nữa cám ơn bạn nha. Mình sẽ sửa lại checksum xong rồi sẽ report lại kết quả với bạn. Thanks
|
|
|
chiro8x wrote:
Mấy cái hình không biết sao mình không xem đc, bạn cho lại mấy cái hình hoặc tóm bằng wireshark rồi tải lên mediafire đc không ?.
không biết sao mình nhúng hình trực tiếp vào không được, web không hiển thị nên mình để link.
http://www.mediafire.com/?ycxa459sng6ggu3
cái này là gói tin bắt được bằng WireShark, gồm 4 gói DHCPDISCOVER, (filter = bootp). Mình đã thử gửi DISCOVER với delay là 1 giây, 2 giây, 4 giây, 8 giây, nhưng vẫn không thấy DHCPOFFER từ server.
Bạn xem giúp mình.
Thanks đã reply..
|
|
|
Chuyện là thế này, hiện tại mình đang lập trình mạng cho chip set wifi modern là ZG2100 bằng ngôn ngữ C, mọi chuyện kết nối đã bình thường, nhưng IP mình đang sử dụng để thiết lập là IP tĩnh ngoài vùng DHCP.
Nay mình mày mò cách update lên cho em nó chạy được với DHCP Server. Tiến trình DHCP : Client gửi DISCOVER --> Server gửi lại Client OFFER --> Client xử lý OFFER gửi lại server gói REQUEST --> Server gửi gói ACK cho client để đồng ý..
Tiến trình là như vậy nhưng mình chỉ đến được giai đoạn đầu tiên. Broadcast gói tin DISCOVER packet, nhưng chờ mãi chả thấy DHCP server của mình trả lời.
Mình dùng Wireshark bắt gói tin thì thấy rất bình thường checksum điều đúng cả và rất giống với các gói tin DHCP khác.
Anh em nào có kinh nghiệm xin góp ý cho mình.
Xin cám ơn.
|
|
|
DuongLD wrote:
down file đó về máy xem có bị ko cài thử win7 bản khác hoặc Os khác xem , vào clip.vn xem thử có bị ko nếu còn bị thì xách cái máy lên chổ mua hỏi nó cho nhanh
Hix ! hôm nay đem máy ra cty của nó, 3 anh chàng sửa máy ngồi mò cả buổi trời mà chưa xong nữa, thử đủ cách, cài Win, update BIOS, update Driver, cài codec, cũng chịu thua luôn. Đành để máy ở tiệm tối nay cho mấy a chàng đó nghiên cứu thêm một đêm nữa. Mình Lên trang chủ của MSI thì mấy bác bên nước ngoài cũng gặp hiện tượng này. mấy cha Global Support thì cũng chỉ đủ cách nhưng người gặp vấn đề thì đành cắng răng chịu đựng. Sống chung với lỗi của VGA. Đọc tới đó thấy mà nản luôn. Chắc mai mốt cho em nó ra đi luôn quá !
Cũng mỗi cái tội ham rẻ và đẹp vì con này màu bạc và rất mỏng, nhìn xa xa giống Mac AirBook lắm .
A e rút kinh nghiệm của mình nha ! thử hàng cho kĩ lưỡng trước khi rinh máy về nhà !
|
|
|
Z0rr0 wrote:
Không việc gì phải cài lại OS hay browser. Lỗi màn hình xanh lá cây trên thường gặp ở dân chơi phim HD hay biên tập video. Nguyên nhân là do video codec bạn đang dùng không tương thích tốt với loại flash video.
Cách kiểm tra:
- Thử với loại video youtube độ phân phân giải khác, mức thấp nhất hoặc tăng lên 480p, 720p, ...
- Uninstall k-lite codecs và cài lại bản đầy đủ phiên bản mới nhất
- Lúc cài k-lite codecs xem kĩ tuỳ chọn codec, chọn hết các loại hỗ trợ flash video (flv, ...), các mục khác để default.
Thanks, thỉnh thoảng đôi lúc mình xem video trên mp3.zing thì vẫn được, nhưng là tuỳ clip nữa, có cái xem được có cái xem bị màn hình xanh. Chắc có lẽ như bạn nói độ phân giải của chúng khác nhau.
Mình sẽ test trong hum nay thử xem. nếu được sẽ thông báo cho anh em !
cám ơn a em góp ý.
|
|
|
đây là lần cài win thứ 2 rồi, lần trước khi mua máy về có sẵn Win 7 Ultimate nhưng vẫn bị trường hợp như thế này. Mình cứ tưởng là do bản Ghost của tiệm bị lỗi mới cài lại win. ai ngờ đâu cài xong vẫn thế.
giờ chắc đem lại tiệm cho chăc ăn.
|
|
|
Mình đang xài con MSI X340 mới mua chừng 1 tháng, mới cài lại win 7 Pro 32 bit. khi vào Youtube xem video thì bị lỗi như thế này.
.
khi bị thế này thì nó vẫn play được và có âm thah nhưng chỉ mỗi màn hình như thế thôi. với lại máy sẽ chạy chậm lại và dễ bị treo.
Mình dã cài Adobe Flash 10.1, kể cả gói k-Lite codec. hiện tượng này xảy ra khi dùng bằng IE 9 và FF.
A em góp ý mình nên sửa bằng cách nào đây ?
|
|
|
A e nào có tài liệu về Voip có thể shared cho minh được không ??
và thêm một điều nữa là khi chúng ta triển khai một hệ thống voip với cách truyền phone to phone thì cần những thiết bị chuyên dụng nào ??
Cám ơn a e đã đọc bài .
|
|
|
Thanks.
Mình tìm hiểu sáng giờ thì cũng biết được chút về công nghệ này, nhưng có một hãng điện thoại sản xuất được mẫu điện thoại sử dụng mạng Wi - Fi để gọi luôn, nó gần giống như máy bộ đàm ấy.
|
|
|
Mình đang là sinh viên năm cuối, hiện đang chọn đề tài luận văn để thực hiện.
Thầy hướng dẫn của mình có đề xuất đề tài này. Là việc sử dụng một chiếc điện thoại chạy OS Symbian và một phầm mềm (cái này mình tự viết bằng J2ME) dùng để gọi hoặc nhắn tin cho một chiếc điên thoại khác cũng chạy OS Symbian và cũng cài phần mềm mình phải viết, thông qua Access Point.
Công việc là như thế. Anh em nào có hiểu biết về lĩnh vực này có thể góp ý cho mình là đề tài này có khả thi nhiều không ? Và mảng kiến thức nào cần có để thực hiện ?
Thanks anh em đã đọc bài !
Chúc anh em khoẻ !
|
|
|
đúng rồi đó anh quanta ơi. Nhưng em man thì nó báo không có bc
không được anh ơi.
|
|
|
Mình đang học Linux. có chỗ cần chỉ giáo từ các bạn
hiện giờ mình muốn chuyển một chuỗi nhị phân nhập từ người dùng thành số thập phân. Thì code như thế nao vậy các bạn. sao mình làm hoài mà không ra vay nè
ai giúp được cám ơn 100.000 lần.
|
|
|
trời ông bạn giống tui quá đi, phục hồi hô được đâu...........Máy tui đành bó tay,tui làm 3 4 ngày mà chẳng được, thui ông bạn để thời gian đó đi kiếm data lại đi
tui mất hết 20Gb đó. hiiiiiiiiiiiiiiiiiihaaaaaaaaaaaa.
|
|
|
ui. cai nay chac chỉ xài chùa được khoảng 30 ngày thui. lúc đó bạn cần phải đăng kí đó nếu không là Stop use ! hihi. mình có keygen nè !
|
|