Thanh ghi trạng thái của cổng SSI (SSISR) là một thanh ghi chỉ đọc (read only) 8-bit được dùng bởi DSP56002 để quản lý trạng thái và các cờ nhập nối tiếp của cổng SSI. SR chiếm vị trí x:$FFEE.
Bit cờ báo đầy thanh ghi nhận (RDF) của SSISR (bit 7) được đặt khi nội dung của RSR được truyền hết đến RX. Và RDF được xĩa khi DSP56002 đọc RX, hay được xĩa bằng phần cứng, phần mềm, các đặc tính SSI hoặc lệnh STOP.
Bit cờ báo trống TX (TDE)của SSISR (bit 6) được đặt khi nội dung của TX được truyền hết đến TSR và cũng cịn được đặt trong việc cấm chu kỳ Timeslot trong chế độ mạng. TDE được xĩa khi DSP56002 ghi dữ liệu mới vào TX hay DSP56002 ghi vào thanh ghi Timeslot (TSR) để cho phép truyền timeslot kế tiếp.
Bit cờ báo lỗi nhận chạy vượt (overrun) (ROE) của SSISR (bit 5) được đặt khi thanh ghi dịch nhận dữ liệu nối tiếp được nhận và sẵn sàng truyền dữ liệu đến RX nhưng RX đã đầy (RDF=1). ROE được xĩa bằng phần cứng, phần mềm và cũng được xĩa bằng cách đọc SSISR với ROE được đặt, rồi tiếp theo đọc RX.
Bit cờ báo lỗi nhận chạy chậm (underrun)(TUE) của SSISR (bit 4) được đặt khi TSR đang trống (khơng cĩ dữ liệu nào được truyền đến) và sự truyền timeslot đang xảy ra. Khi lỗi này xảy ra thì dữ liệu trước đĩ (dữ liệu cịn hiện hành trong TX) sẽ được truyền ngược trở lại. TUE cũng cĩ thể được xĩa bằng phần cứng, phần mềm… Và cũng được xĩa bằng khi đọc SSISR với TUE được đặt, rồi tiếp theo ghi TX hay TSR.
Các bit cờ báo nhập nối tiếp (IF0 và IF1) của SSISR (bit 0 và 1) khơng được dùng trong hệ thống DRP56002 này.
Khi bit cờ báo truyền tín hiệu đồng bộ (TFS) của SSISR (bit 2) được đặt thì nĩ chỉ ra rằng cĩ một sự truyền tín hiệu đồng bộ xảy ra trong timeslot hiện hành của DSP56002. TFS được đặt tại vị trí khởi đầu của timeslot đầu tiên trong khung và được xĩa trong tất cả các timeslot khác của DSP56002. TFS được dùng trong chế độ mạng để xác định khung (frame) khởi đầu.
*
0 RDFTDERDETUERFSTFSIF1IF00 0 1 2 3 4 7 6 5 23
Thanh ghitrạng thái SSI X:$FFEE (Đọc)
Cờ vào nối tiếp 0,1 Khung đồng bộ truyền Khung đồng bộ nhận Cờ lỗi nhận tràn Thanh ghi truyền trống Đầy thanh ghi nhận
Cờ lỗi truyền
8
Trong hệ thống DSP, các lệnh sau đây dùng để tác động khung khởi đầu trong chế độ mạng để thiết lập sự đồng bộ cần thiết trước khi dùng các ngắt để truyền dữ liệu giữa DSP56002 và các bộ ADC và DAC.
DO #$100,GOTHRU
JCLR #2,X:SSISR,* ;chờ khi bit khung tx là 1 JSET #2,X:SSISR,* ;chờ khi bit khung tx là 0 NOP
GOTHRU
Khi bit cờ báo nhận tín hiệu đồng bộ (RFS) của SSISR (bit 3) được đặt thì nĩ chỉ ra rằng cĩ một sự nhận tín hiệu đồng bộ xảy ra khi nhận lại từ mà ở trong thanh ghi nhận dữ liệu nối tiếp. Điều đĩ cĩ nghĩa là từ dữ liệu đĩ là timeslot đầu tiên của DSP56002 của khung. RFS cũng được dùng trong chế độ mạng để xác định khung khởi đầu.
Trong hệ thống DSP, các lệnh sau của DSP56002 là một phần thiết lập CS4215 trước khi đi vào chế độ điều khiển và chế độ dữ liệu:
MOVEP #$01E8,X:PCC ;mở cổng SSI;CLB=0
JCLR #3,X :SSISR,* ;chờ bit khung rx là 1
JSET #,X :SSISR,* ;chờ bit khung rx là 0
JCLR #3,X :SSISR,* ;chờ bit khung rx là 1
JSET #18,X :RX_BUFF_BASE,* ;dừng tại chổ cho đến khi CLB đặt ;--- ;CLB=0 ;--- BSET #18,X :TX_BUFF_BASE ;đặt CLB DO #4,_INIT_LOOPB JCLR #2,X:SSISR, * JCLR #2,X:SSISR, * _INIT_LOOPB
MOVEP #0,X:PCC ;tắt,reset cổng SSI
Các lệnh và macro sau được dùng để lái tín hiệu dạng số hĩa tín hiệu tương tự trái và phải được nhận từ hai bộ ADC đưa đến kênh trái và phải của hai bộ DAC. DATA_LOOP WAIT_RECEIVE WAIT_WORD GET_LEFT GET_RIGHT MOVE X0,A PUT_LEFT MOVE X1,B PUT_RIGHT JMP DATA_LOOP
WAIT_RECEIVE MACRO ; đây là macrochờ nhận dữ liệu
JCLR #3, X :SSISR, * JSET #3, X :SSISR,* ENDM WAIT_SEND MACRO JCLR #2,X:SSISR,* JSET #2,X:SSISR,* ENDM
GET_LEFT MACRO ; đây là macro nhận kênh trái vào x0
MOVE X :RX_BUFF_BASE,X0
ENDM
MOVE A,X :TX_BUFF_BASE ENDM
GET_RIGHT MACRO ;đây là macro nhận kênh phải vào x1
MOVE X:RX_BUFF_BASE+1,X1
ENDM
PUT_RIGHT MACRO ; đây là macro xuất b ra kênh phải
MOVE B,X:RX_BUFF_BASE+1
ENDM
WAIT_WORD MACRO
JCLR #1,R7,*
ENDM