Spectrum sensing plays a critical role in cognitive radio networks (CRNs). The majority of spectrum sensing algorithms aim to detect the existence of a signal on a channel, i.e., they classify a channel into either busy or idle state, referred to as a two-state sensing model in this paper. While this model works properly when there is only one CRN accessing a channel, it significantly limits the potential and fairness of spectrum access when there are multiple co-existing CRNs. This is because if the secondary users (SUs) from one CRN are accessing a channel, SUs from other CRNs would detect the channel as busy and hence be starved. In this paper, we propose a three-state sensing model that distinguishes the channel into three states: idle, occupied by a primary user, or occupied by a secondary user. This model effectively addresses the fairness concern of the two-state sensing model, and resolves the starvation problem of multiple co-existing CRNs. To accurately detect each state of the three, we develop a two-stage detection procedure. In the first stage, energy detection is employed to identify whether a channel is idle or occupied. If the channel is occupied, the received signal is further analyzed at the second stage to determine whether the signal originates from a primary user or an SU. For the second stage, we design a statistical model and use it for distance estimation. For detection performance, false alarm and miss detection probabilities are theoretically analyzed. Furthermore, we thoroughly analyze the performance of throughput and fairness for the three-state sensing model compared with the two-state sensing model. In terms of fairness, we define a novel performance metric called all-level fairness for all(ALFA) to characterize fairness among CRNs. Extensive simulations are carried out under various scenarios to evaluate the three-state sensing model and verify the aforementioned theoretical analysis.