Trong chế độ Transparent hay UART dữ liệu đi hay đến đƣợc đƣa trực tiếp tới bộ điều chế trong chế độ truyền và đƣợc nhận trực tiếp trong chế độ nhận. Trong các chế độ NRZ và Manchester, dữ liệu đƣợc lƣu tại RFBUF nhƣ đƣợc minh hoạ ở hình 2.5. Việc lƣu nhƣ vậy có những ảnh hƣởng cần đƣợc xem xét khi nhận hay truyền dữ liệu, nhất là trong chế độ bytemode.
Quá trình truyền
Khi truyền dữ liệu theo bytemode (RFCON.BYTEMODE=1), một thanh ghi 8-bit sẽ dịch từng bit tới bộ điều chế, MSB (bit cao nhất) trƣớc tiên, và chu kỳ phụ thuộc vào tốc độ đƣợc lựa chọn. Khi thanh ghi dịch này rỗng sẽ nạp một byte mới từ RFBUF tiếp tục dịch bit. Nội dung của thanh ghi RFBUF không đổi sau khi thanh ghi dịch lấy dữ liệu từ nó. Một ngắt đƣợc tạo ra (EICON.RFI) và RFBUF có
Thanh ghi dịch 8 bit
RFBUF Nhân 8051 Điều chế truyền không dây Giải điều chế nhận không dây LSB Hình 2.5 Đệm dữ liệu RF. Đƣờng gạch là chế độ bit
thể đƣợc nạp với byte dữ liệu mới. Nếu một byte mới không đƣợc ghi vào trong chu kỳ tám bit (chu kỳ tám bit trong chế độ NRZ và chu kỳ 16 baud trong chế độ
Manchester), thời điểm tiếp theo thanh ghi dịch rỗng sẽ lấy lại dữ liệu cũ từ
RFBUF. Chẳng hạn khi truyền một tín hiệu dẫn đƣờng bao gồm '0' và '1' thay đổi, nó chỉ cần ghi byte vào RFBUF một lần và chờ tới khi số các byte cần truyền tín hiệu dẫn đƣờng đƣợc truyền đi. Ở chế độ bitmode (RFCON.BYTEMODE=0), cũng xảy ra tƣơng tự, nhƣng chỉ một bit tại một thời điểm. Theo đó, thanh ghi dịch sẽ nạp bit mới từ RFBUF.0 sau khi truyền một bit đi, và ngắt RF đƣợc tạo ra để báo có bit mới đƣợc nạp. Để có thể ghi bit tiếp theo vào RFBUF.0 trong một chu kỳ bit ở tốc độ cao, nên sử dụng vòng quét nhanh (tight polling loop) thay vì thủ tục truyền dựa trên ngắt. Để bắt đầu truyền dữ liệu ngay khi có thể, bit/byte đầu tiên đƣợc truyền đƣợc ghi vào RFBUF trƣớc khi bộ điều chế hoạt động (RFMAIN.TX_PD=0). Nó sẽ ngay lập tức đƣợc nạp vào thanh ghi dịch và một yêu cầu ngắt đƣợc tạo ra cho bit/byte thứ hai. Điều này đặc biệt quan trọng khi tính đến việc lƣu dữ liệu tại cuối một quá trình truyền. Khi byte cuối cùng của một frame hay packet đƣợc nạp vào thanh ghi dịch nó vẫn không đƣợc truyền đi. Nhƣ vậy yêu cầu ngắt đƣợc tạo ra tại cùng thời điểm không bị dừng đối với cả phần analog hay digital của một quá trình truyền. Quá trình truyền không thể kết thúc đƣợc một cách an toàn cho tới chu kỳ 9 bit cuối cùng trong chế độ bytemode và chu kỳ 2 bit trong chế độ bitmode, khi bit cuối cùng đƣợc dịch và đƣợc truyền tới antenna. Một giải pháp đơn giản là luôn luôn truyền hai byte mở rộng trong chế độ bytemode hay hai bit mở rộng trong chế độ bitmode ở cuối quá trình truyền dữ liệu. Điều này không gây ra vấn đề gì trong thực tế
Quá trình nhận
Khi nhận dữ liệu lƣợc đồ đệm sẽ hoạt động ngƣợc với quá trình truyền. Từng bit từ bộ giải điều chế đƣợc dịch vào thanh ghi dịch 8-bit, MSB trƣớc tiên: Khi thanh ghi dịch đầy nó đƣợc nạp vào RFBUF và một yêu cầu ngắt đƣợc sinh ra (EICON.RFIF). Byte cần đƣợc đọc trong chu kỳ một byte (chu kỳ 8 baud trong chế độ NRZ và 16 baud trong chế độ Manchester). Nếu không, nó sẽ bị ghi đè bởi byte nhận đƣợc tiếp theo và dữ liệu sẽ bị mất. Trong chế độ bitmode quá trình đệm
cũng xảy ra tƣơng tự, nhƣng mỗi bit tại một thời điểm. Theo đó, khi một bit mới tới từ bộ giải điều chế thanh ghi dịch sẽ lƣu nó và lƣu bit cuối cùng vào RFBUF.0, lần lƣợt tạo ra các yêu cầu ngắt RF để có thể đọc các bit mới. Để có thể đọc bit tiếp theo từ RFBUF.0 trong chu kỳ một bit ở tốc độ cao nên sử dụng vòng quét nhanh thay vì dựa vào ngắt. Không có sự cân nhắc đặc biệt nào đối với thời điểm bắt đầu hay kết thúc quá trình nhận.