View Single Post
Old 31-05-2006, 10:02 PM   #77
ntc
Đệ tử 8 túi
 
ntc's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: HCM city
Bài gửi: 264
:
Send a message via Yahoo to ntc
Trích:
Sao không ai nói tiếp chuyện của bác F thế. Buồn Wá. Tôi đưa ra thuật toán thế này nhé. thuật toán này chỉ dùng cho mạng 485 của tôi.
Hìhì. Bác Falleaf đang đặt ra các vấn đề về giao tiếp song song mà.

Mạo muội đưa ra một giải pháp về giao tiếp nhiều PIC qua PSP như sau:

Module PSP có chân CS*, ta có thể chọn chân này làm giải pháp để giao tiếp nhiều PIC qua PSP. Các PIC sẽ được nối với nhau theo dạng BUS (nối tất cả các chân data của Slave và Master lại với nhau). Muốn giao tiếp với chip nào chỉ cần đưa chân CS* của chip đó xuống mức logic thấp (tất nhiên, bàn đầu đưa tất cả các chân CS* lên cao). Đại khái cách nối giống như nối nhiều LED 7 đoạn. Các chân RD* và WR* cũng được nối chung với nhau.

Trong trường hợp có nhiều PSP Slave, có thể dùng thêm các IC ghi dịch hoặc giải mã để tiết kiệm chân điều khiển cho PIC, ngõ ra các IC ghi dịch và giải mã sẽ được nối với các chân CS* của PIC.

PSP Master không nhất thiết phải sử dụng module PSP, mà có thể sử dụng bất cứ port 8 chân nào để làm ngõ data và một số chân để điều khiển việc chọn chip. PSP Slave nên sử dụng module PSP để việc truyền nhận dữ liệu đơn giản hơn.

Về firmware, cách đọc và ghi dữ liệu có thể dùng ngắt, và cách điều khiển cũng tương tự như giao tiếp giữa 2 PSP, các vấn đề phát sinh cần xử lí là chọn chip và xử lí thuật toán chia lấy phần dư.

Tuy nhiên cần tối ưu code xử lí ngắt để cải thiện thời gian truyền. Vì cứ mỗi lần phát sinh ngắt, phải mất một số chu kì lệnh phát sinh để vào ngắt và thoát ngắt.
__________________

ntc vẫn chưa có mặt trong diễn đàn